সিএনএন-এ কীভাবে বড় আকারের চিত্রগুলি পরিচালনা করবেন?


15

ধরুন, সিএনএন-তে 2400 x 2400 আকারের 10K টি চিত্র ব্যবহার করা দরকার my এখন প্রশ্ন হ'ল যেখানে ডাউনস্যাম্পলিংয়ের কোনও সুযোগ সুবিধা নেই সেখানে এত বড় চিত্রের মাপ কীভাবে পরিচালনা করবেন।

সিস্টেমের প্রয়োজনীয়তা এখানে:

উবুন্টু 16.04 64-বিট র‌্যাম 16 জিবি জিপিইউ 8 জিবি এইচডিডি 500 জিবি

1) প্রশিক্ষণের জন্য এমন বড় চিত্রগুলি পরিচালনা করার জন্য কি কোনও কৌশল রয়েছে?
2) কোন ব্যাচের আকারটি ব্যবহার করা যুক্তিসঙ্গত?
3) আমি নিতে পারি এমন হার্ডওয়ার রিসোর্সে কোনও গ্রহণযোগ্যতা বা বৃদ্ধি বা হ্রাস আছে কি?

উত্তর:


14

এখন প্রশ্ন হ'ল যেখানে ডাউনস্যাম্পলিংয়ের কোনও সুযোগ সুবিধা নেই সেখানে এত বড় চিত্রের মাপ কীভাবে পরিচালনা করবেন

আমি ধরে নিচ্ছি যে ডাউনস্যাম্পলিংয়ের মাধ্যমে আপনি সিএনএন-এ যাওয়ার আগে ইনপুটটি স্কেল করে দেবেন । কনভ্যুভেশনাল স্তরটি একটি বৃহত ধীরে ধীরে বাছাইয়ের মাধ্যমে কোনও নেটওয়ার্কের মধ্যে চিত্রটি ডাউনসাম্পল করতে দেয় যা পরবর্তী স্তরগুলির জন্য সংস্থানগুলি সংরক্ষণ করতে চলেছে। আসলে, এটি যা করতে হবে তা নয়, অন্যথায় আপনার মডেলটি জিপিইউতে ফিট করবে না।

1) প্রশিক্ষণের জন্য এমন বড় চিত্রগুলি পরিচালনা করার জন্য কি কোনও কৌশল রয়েছে?

সাধারণত গবেষণাগুলি একটি অনুরণনযোগ্য আকারে চিত্রগুলি স্কেল করে। তবে যদি এটি আপনার পক্ষে বিকল্প না হয় তবে আপনার সিএনএনকে সীমাবদ্ধ করতে হবে। প্রারম্ভিক স্তরগুলিতে ডাউন স্যাম্পলিংয়ের পাশাপাশি, আমি আপনাকে কনফিউশনাল স্তরটির পক্ষে এফসি স্তর (যা সাধারণত বেশিরভাগ পরামিতি নেয়) থেকে মুক্তি পাওয়ার পরামর্শ দিচ্ছি । এছাড়াও আপনাকে প্রতিটি পর্বে আপনার ডেটা প্রবাহিত করতে হবে, কারণ এটি আপনার জিপিইউয়ের সাথে খাপ খায় না।

নোট করুন যে এর কোনওটি প্রারম্ভিক স্তরগুলিতে ভারী কম্পিউটেশনাল লোড প্রতিরোধ করবে না ঠিক কারণ ইনপুটটি এত বড়: কনভোলজেশন একটি ব্যয়বহুল ক্রিয়াকলাপ এবং প্রথম স্তরগুলি প্রতিটি ফরোয়ার্ড এবং পিছিয়ে পাসে তাদের প্রচুর পরিবেশন করবে । সংক্ষেপে, প্রশিক্ষণ ধীর হবে।

2) কোন ব্যাচের আকারটি ব্যবহার করা যুক্তিসঙ্গত?

এখানে আরও একটি সমস্যা রয়েছে। একটি একক চিত্র নিতে 2400x2400x3x4(পিক্সেল প্রতি 3 চ্যানেল এবং 4 বাইট) যা ~ 70Mb, তাই আপনি খুব সহজেই একটি ব্যাচের আকারও তুলনামূলকভাবে 10 তুলনামূলকভাবে তুলনামূলকভাবে তুলনামূলকভাবে তুলনামূলকভাবে তুলনামূলকভাবে তুলনামূলকভাবে তুলনামূলকভাবে তুলনামূলকভাবে তুলনামূলকভাবে তুলনামূলকভাবে তুলনামূলকভাবে গ্রহণ করতে পারবেন। আমি মনে করি এক্ষেত্রে এটি 32-বিটের পরিবর্তে 16-বিট মান ব্যবহার করে আকার হ্রাস করবে - এইভাবে আপনি ব্যাচগুলি দ্বিগুণ করতে সক্ষম হবেন।

3) আমি নিতে পারি এমন হার্ডওয়্যার রিসোর্সগুলি গ্রহণের কোনও গ্রহণযোগ্যতা বা কোনও বৃদ্ধি বা হ্রাস আছে কি?

আপনার বাধাটি জিপিইউ মেমরি। আপনি যদি অন্য কোনও জিপিইউ সাধ্যের সাথে চালাতে পারেন তবে এটি পান এবং তাদের জুড়ে নেটওয়ার্কটি বিভক্ত করুন। জিপিইউ মেমরির তুলনায় অন্য সমস্ত কিছুই তুচ্ছ।


1
ধন্যবাদ. আপনি ইতিমধ্যে এই উত্তরে প্রদত্ত কয়েকটি পরামর্শ আমি ইতিমধ্যে অনুসরণ করেছি। ভাল উত্তর.
ওয়াটাররোকট 8236

5

সাধারণত চিত্রগুলির জন্য বৈশিষ্ট্য সেটটি পিক্সেল ঘনত্বের মান হয় এবং এক্ষেত্রে এটি বেশ বড় বৈশিষ্ট্য সেটকে নিয়ে যায়; আপনি নিখুঁতভাবে গুরুত্বপূর্ণ ডেটা হারাতে পারেন (বাস্তবে) ইমেজগুলির নমুনা নেওয়ারও প্রস্তাব দেওয়া হয় না।

[1] তবে কিছু কৌশল রয়েছে যা আপনাকে বৈশিষ্ট্য নির্ধারণের আকার হ্রাস করতে সহায়তা করতে পারে, পিসিএ (নীতিগত উপাদান উপাদান বিশ্লেষণ) এর মতো পদ্ধতির গুরুত্বপূর্ণ বৈশিষ্ট্য উপসেট নির্বাচন করতে আপনাকে সহায়তা করে।

বিস্তারিত তথ্যের জন্য লিঙ্কটি দেখুন http://spark.apache.org/docs/latest/ML-features.html#pca

[২] আপনার নিউরাল নেটওয়ার্ককে প্রশিক্ষণ দেওয়ার সময় গণনা ব্যয় হ্রাস করার পরিবর্তে আপনি গ্রেডিয়েন্ট বংশোদ্ভূত পদ্ধতির প্রচলিত ব্যবহারের পরিবর্তে স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভুত ব্যবহার করতে পারেন, যা প্রতিটি পুনরাবৃত্তির প্রশিক্ষণের জন্য প্রয়োজনীয় ডেটাসেটের আকার হ্রাস করবে। সুতরাং আপনার ডেটাসেটের আকারটি একটি পুনরাবৃত্তিতে ব্যবহৃত হতে পারে হ্রাস পাবে, এইভাবে নেটওয়ার্ক প্রশিক্ষণের জন্য প্রয়োজনীয় সময় হ্রাস পাবে।

সঠিক ব্যাচের আকারটি ব্যবহার করতে হবে ডেটাসেট এবং টেস্টিং ডেটাসেটের জন্য আপনার বিতরণের উপর নির্ভরশীল, আরও সাধারণ ব্যবহার 70-30। যেখানে আপনি প্রয়োজনীয় সময় কমাতে উপরে উল্লিখিত স্টোকাস্টিক পদ্ধতির ব্যবহার করতে পারেন।

স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত জন্য বিস্তারিত http://scikit-learn.org/stable/modules/sgd.html

[3] হার্ডওয়্যার আপগ্রেড করার জন্য উপযুক্ত হবে বলে মনে হয়, তবুও যদি এডাব্লুএস এর মতো মেঘ সমাধানগুলিতে নজর দেওয়া হয় যেখানে আপনি ব্যবহারের সীমা পর্যন্ত নিখরচায় অ্যাকাউন্টের সাবস্ক্রিপশন পেতে পারেন।


উত্তরের জন্য ধন্যবাদ. আরও তথ্য পেলে উত্তরটি আপডেট করুন।
ওয়াটাররোকট 8236

স্টোকাস্টিক গ্রেডিয়েন্ট বংশোদ্ভূত লিঙ্কটির জন্য ধন্যবাদ, এবং এআই-তে আপনাকে স্বাগতম!
ডিউকঝৌ

2

এত বড় ডেটা আপনার স্মৃতিতে লোড করা যায় না। আপনি যা করতে পারেন তা দুটি ভাগে ভাগ করতে দেয়:

  1. আপনার সমস্ত চিত্রকে ছোট মাত্রায় পুনরায় বিক্রয় করুন। আপনি এগুলি 112x112 পিক্সেল এ পুনরায় বিক্রয় করতে পারেন। আপনার ক্ষেত্রে, কারণ আপনার বর্গাকার চিত্র রয়েছে, তাই ফসলের কোনও প্রয়োজন হবে না। আপনি এখনও কোনও লক্ষ্যতে এই সমস্ত চিত্র আপনার রামে লোড করতে সক্ষম হবেন না।

  2. সর্বোত্তম বিকল্পটি হ'ল একটি জেনারেটর ফাংশন ব্যবহার করা যা ব্যাচগুলিতে ডেটা ফিড করবে। অনুগ্রহ করে কেরাসের মতো ফিট_জেনেটর ব্যবহার করুন। যদি আপনার মডেল প্যারামিটারগুলি জিপিইউ মেমরির সাথে ফিট করার জন্য খুব বড় হয়ে যায়, তবে আপনার প্যারামিটারের সংখ্যা হ্রাস করতে ব্যাচ সাধারণকরণ বা রেসিডুয়াল মডেল ব্যবহার করার বিষয়টি বিবেচনা করুন।


3
আপনি কেন 112x112 পিক্সেল আকার চয়ন করবেন? এটি 2 এর শক্তি নয় এবং 2400 এর বিভাজক নয়
Andi R

@AndiR। এখানে জিনিস। এটি যখন ইনপুট মাত্রা নিয়ে আসে, তখন যে কোনও আকার চয়ন করতে স্বাধীন free এটি কারণ, যদি নেটওয়ার্কে কোনও মাত্রিক অসুবিধাগুলি কম থাকে তবে শূন্য প্যাডিং ব্যবহার করে এটি সহজেই সমাধান করা যেতে পারে। সুতরাং, ইনপুট আকারের জন্য কোনও স্থির পদ্ধতি নেই। যেটি সম্পর্কে অবশ্যই সতর্কতা অবলম্বন করা উচিত তা নিশ্চিত করে নেওয়া যে খুব বেশি ডাউন স্যাম্পলিংয়ের ফলে ইনপুট মানের কোনও ক্ষতি হয় না। দয়া করে এই কাগজটি একবার দেখুন যা 112x112 মাত্রাটি ব্যবহার করে। ( cv-foundation.org/openaccess/content_iccv_2015/paper/… )
রকসনে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.