প্রশিক্ষণ কেন আমার জিপিইউতে এত দীর্ঘ সময় নেয়?


10

বিবরণ:

জিপিইউ : জিটিএক্স 1080

প্রশিক্ষণ : 10 ক্লাসের অন্তর্ভুক্ত ~ 1.1 মিলিয়ন ডলার

বৈধতা : 10 শ্রেণীর অন্তর্ভুক্ত। 150 হাজার চিত্র images

প্রতি যুগের সময় : hours 10 ঘন্টা

আমি সিইউডিএ, সিইউডিএনএন এবং টেনসরফ্লো (টেনসরফ্লো জিপিইউ) সেটআপ করেছি।

আমি মনে করি না যে আমার মডেলটি এমন জটিল যে প্রতি যুগের জন্য 10 ঘন্টা সময় লাগে। এমনকি আমার জিপিইউ সমস্যা কিনা তা যাচাই করেছিলাম তবে তা হয়নি।

সম্পূর্ণ সংযুক্ত স্তরগুলির কারণে প্রশিক্ষণের সময় কি?

আমার মডেল:

model = Sequential()
model.add()
model.add(Conv2D(64, (3, 3), padding="same", strides=2))
model.add(Activation('relu'))
model.add(Dropout(0.25))
model.add(Conv2D(64, (3, 3), padding="same", strides=2))
model.add(Activation('relu'))
model.add(Dropout(0.25))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(3, 3), strides=2))
model.add(Flatten())
model.add(Dense(256))
model.add(Activation('relu'))
model.add(Dense(4096))
model.add(Activation('relu'))
model.add(Dense(10))
model.add(Activation('softmax'))

model.summary()

opt = keras.optimizers.rmsprop(lr=0.0001, decay=1e-6)

model.compile(loss='categorical_crossentropy',
          optimizer=opt,
          metrics=['accuracy']
          )

কারণ অনেকগুলি ডেটা আমি ইমেজডেটা জেনারেটর ব্যবহার করেছি used

gen = ImageDataGenerator(
 horizontal_flip=True
)

train_gen = gen.flow_from_directory(
        'train/',
        target_size=(512, 512),
        batch_size=5,
        class_mode="categorical"
)

valid_gen = gen.flow_from_directory(
        'validation/',
        target_size=(512, 512),
        batch_size=5,
        class_mode="categorical"
)

2
আমি এটিকে ওভারফ্লোতে স্ট্যাক করার জন্য ভোট দিয়েছি, তবে সত্যই এটি তথ্য বিজ্ঞানের স্ট্যাক এক্সচেঞ্জ, আইএমও
জেনেরিক_উজার

জেনেরিক_উজার: "ডেটা সায়েন্স" "মেশিন লার্নিং" ব্যবহার করতে পারে তবে সমস্ত "মেশিন লার্নিং" "ডেটা সায়েন্স" এর জন্য নয়। (এমএল হ'ল অন্য একটি সরঞ্জাম, কেবল অন্য লাইব্রেরিটি সেন্সরফ্লোও; এমএল শীঘ্রই (যদি ইতিমধ্যে না থাকে) এমনকি ব্যবহারিক পছন্দসমূহের সম্পত্তি ফাইল পরিচালনা করার মতো জাগতিক কাজগুলির জন্যও ব্যবহার করা যেতে পারে))
মাইকেল

সম্পর্কিতও দেখুন (টিএল; ডাঃ: জিপিইউতে আসলে চলছে তা যাচাই করুন, জিপিইউ স্ট্যাটাসটি দেখুন যা টিএফ সরবরাহ করতে পারে) স্ট্যাকওভারফ্লো / প্রশ্নগুলি
মাইকেল

আমি সেই পদ্ধতির চেষ্টা করেছি এবং এতে বলা হয়েছে যে আমার বর্তমান জিপিইউ ব্যবহৃত হচ্ছে। নিশ্চিত করার জন্য আমি জিপিইউর ব্যবহার পরীক্ষা করার জন্য এনভিডিয়া-এসএমআইও ব্যবহার করেছি এবং এটি 85% -99% এর মধ্যে ওঠানামা করে।
প্রদ্যুম্না রাহুল

উত্তর:


7

এটা প্রত্যাশিত প্রায়। আপনি যদি প্রক্রিয়াকৃত চিত্রগুলির সংখ্যা দ্বারা সেকেন্ডের সংখ্যা ভাগ করে থাকেন তবে আপনি প্রতি ছবিতে 33 মিলি সেকেন্ড পাবেন যা এই জাতীয় নেটওয়ার্কের জন্য সঠিক বলে মনে হচ্ছে। বৃহত্তর নেটওয়ার্কগুলি প্রতি ইমেজটিতে 50 থেকে 200 মিলিসেকেন্ডের ব্যালপার্ক নেয়।

হ্যাঁ, একটি বিশাল ঘন স্তর আপনার কার্যকারিতা ক্ষতিগ্রস্থ করতে পারে, যেহেতু এটি বিশাল ম্যাট্রিক্স (256 বাই 4096) এবং আপনি যখনই প্রতিবার নেটওয়ার্ক চালাবেন তখন এটির সাথে যেতে একটি বৃহত ম্যাট্রিক্স গুণ lic


পারফরম্যান্স উন্নতির জন্য আপনি কী পরামর্শ দেবেন?

4
1: ব্যাচের আকার 32 বা 64 এ বাড়িয়ে দিন। 2: এফসি স্তরটির আকারটি সম্ভবত 1024 বা 2048 ইউনিটে সঙ্কুচিত করুন এবং দেখুন এটি সাহায্য করে কিনা। 3: প্রথম দিকে থামছে। এটি সম্ভবত আপনার প্রথম যুগের আগে আপনার নেটওয়ার্ক রূপান্তরিত হয়েছে বা অত্যধিক ফিটনেস শুরু করেছে, সেক্ষেত্রে আপনাকে কম প্রশিক্ষণ দেওয়া উচিত।

আমি কি প্রতি যুগের ধাপগুলি কমিয়ে আনব?
প্রদ্যুম্না রাহুল

@ শিমাও আপনার "ট্রেন কম" বলতে কী বোঝায়? আপনি কি ডেটা কম ব্যবহার করতে চান?
স্ট্যাটসোর্স্রেস

3

শিমাও যেমন বলেছিলেন, এটিই আপনি প্রত্যাশা করতেন। অনেক স্তর না থাকা সত্ত্বেও, 512x512 এর একটি ইনপুট আকারটি বড় আকারের আকারের হয়ে উঠছে is সম্পূর্ণ সংযুক্ত স্তরগুলির পরিবর্তে বৃহত চিত্রের উপর fil৪ টি ফিল্টার সংশ্লেষ করার কারণে বৃহত গণনার সময় সম্ভবত আরও বেশি।

আপনি যে নেটওয়ার্কটি একসাথে রেখেছেন তাতে এটি একটি মজার তথ্য বাধা রয়েছে। আপনি মূল আকারের চিত্রটিতে as৪ টি ফিল্টার দিয়ে শুরু করবেন, কেবল আপনার চিত্রের আকার হ্রাস হ্রাস হ্রাস পাবে। ছবিটি আপনার নেটওয়ার্কের মধ্য দিয়ে যাওয়ার সাথে সাথে আপনি যে বৈশিষ্ট্যগুলি শিখছেন সেগুলি আরও বেশি বিমূর্ত এবং জটিল হয়ে উঠছে। আপনার কনভি 2 ডি (32, (3, 3)) স্তরটি মূলত 32 টি বৈশিষ্ট্যের 128x128 মানচিত্র শিখতে নেটওয়ার্ককে সীমাবদ্ধ করে।

বেশিরভাগ নেটওয়ার্ক আর্কিটেকচারগুলি প্রতিবার পুল করার সময় ফিচারের সংখ্যা দ্বিগুণ করে এবং বেশিরভাগ সাম্প্রতিক চিত্রের আর্কিটেকচারগুলি চূড়ান্ত বৈশিষ্ট্যের মানচিত্রের উপরে একটি গড় পুলের পক্ষে পুরোপুরি সংযুক্ত স্তরগুলি খনন করে এবং মূলত সেই পুলের আউটপুটটিতে লজিস্টিক রিগ্রেশন সম্পাদন করে।

কম ফিল্টার দিয়ে শুরু করার চেষ্টা করুন, আপনার প্রতিবার যখন পদক্ষেপ বা পুল হবে তখন দ্বিগুণ হয়ে আপনার প্রথম সমাবর্তন স্তরে 16 বলুন। গ্রাহক ক্ষেত্র বাড়াতে এবং বৈশিষ্ট্যের মানচিত্রের আকার হ্রাস করার জন্য এটি আপনার চেয়ে কয়েকবার করুন। এটি নিচে 64x64 বা 32x32 এ করুন যা 128 বা 256 ফিল্টার হবে। পুরোপুরি সংযুক্ত স্তরগুলিও মুছে ফেলতে আপনি কেরাসের গ্লোবাল গড় বা সর্বোচ্চ পুলিং ব্যবহার করতে পারেন। এটি নেটওয়ার্কের গতি প্রায় দ্বিগুণ হওয়া উচিত এবং আমি একই সময়ে নির্ভুলতার বৃদ্ধি আশা করব।


ঠিক আছে, নেটওয়ার্ক আর্কিটেকচারটি একটি গবেষণা কাগজের উপর ভিত্তি করে আমি পুনরুত্পাদন করার চেষ্টা করছিলাম। lirmm.fr/%7Echaumont/publications/…
প্রদ্যুম্না রাহুল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.