به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

سلام . ببخشید یه سوال در مورد ارور out of memory که از شبکه های مختلف میگیرم داشتم.
چرا من هیچ شبکه ای رو نمیتونم اجرا کنم؟ از سنگین ترین شبکه ها تا سبک ترینشون. معماری هایی که استفاده کردم اینها بودن:
alexnet
resnet50
resnet20
resnet18
chfar_full
siamese
مثلا مورد اخری و معماری cifar full که در خود کفی قرار گرفتند لایه های زیادی ندارن. در واقع شبکه خیلی حجیمی نیستند. نمیدونم چرا روی دیتاست من هیچ کدومشون جواب نمیدن. مشخصات لپ تاب من : گرافیک انویدیا GeForce GT 750M با دو گیگ حافظه
فکر نمیکنم مشخصات بدی باشه و لپ تابم ناتوان باشه که حتی بتونه یه شبکه ساده رم اجرا کنه.
من از فاین تون استفاده می کنم و تصاویر ورودی که میدم هم با تصاویر 2435 در 2435 امتحان کردم. هم با تصاویر 1200 در 1200. روی هر دوشون ارور میده که حافظه کم میاری.
وقتی هم که ریسایز میکنم loss زیاد میشه. عملا مدل هیچی یاد نمیگیره و اطلاعات مفید عکس هام رو خراب کردم با ریسایز. پس گزینه ری سایز به نظرم منتفیه. من باید کاری کنم که رم جی پی یو بکشه که یه شبکه ساده را اجرا کنه.
ایا راهکارهایی دارید که این مشکلو حل کنید؟ ایا میدونید علت چیه که اینقد حافظه زود کم میاره و وارد تکرارها نمیشه؟

مرسی از کمک شما

توسط (150 امتیاز)
ویرایش شده توسط

2 پاسخ

0 امتیاز

شبکه های CNN تعداد پارامتر های بسیار زیادی دارند به همین دلیل برای تعلیم دیدن نیاز به نمونه های ورودی زیادی دارند تعداد ۵۰۰ نمونه اصلا برای همگرا شدن یک شبکه کافی نیست مخصوصا اینکه شما رزولوشن تصاویرتون خیلی زیاد هست و با این رزولوشن حداقل چند صدهزار نمونه نیاز دارید. پس قبل از حل مشکل رم باید مشکل تعداد نمونه هاتون را حل کنید
درمورد کمبود رم قبلا هم توضیح داده بودم, رزولوشن تصویر ورودی خیلی زیاد هست.بخاطر سایز فیلتر های شما خیلی زیاد خواهد شد و نه تنها رم گرافیک شما بلکه حتی رم قوی ترین GPU های حاظر مثل Titan X هم جوابگو نیست.سعی کنید از لایه های pooling یا کانولوشن با stride استفاده کنید تا سایز تصویر ورودی را کاهش بدید یا خودتون به شکل دستی این کار را انجام بدید.
علت اینکه بعد از کاهش رزولوشن شبکه تون همگرا نمیشه تعداد نمونه کم هست. دقت کنیدتعداد نمونه ی دیتاست های امروزی چند ده هزار تا چند میلیون (image net) هست. پس اول از همه باید این مشکل را حل کنید ...

توسط (397 امتیاز)
برای افزایش داده یا همون DataAugmentation میتونیم از ورژن هایی از caffe که به صورت real time این کارو روی نمونه های ورودی انجام میدن استفاده کنیم؟ لینکش اینه:
https://github.com/kevinlin311tw/caffe-augmentation
فقط اینکه این برنچ پوشه ویندوز رو نداره. با توجه به مشخصات سیستم و ورژن ویژوال استودیو 2013 و کودای 7.5 و پشتیباتی از sudnn از کجا میتونم این پوشه را بگیرم و نهایتا بیلدش کنم؟
ممنون از جوابتون
تعداد نمونه هاتون خیلی کم هست. تکنیک های گسترش داده نمیتونند مشکل شما را حل کنند چون داده هاتون کم هستند و فراوانی ویژگی و تنوع در ساختار در نمونه هاتون کم هست. درصورت افزایش مصنوعی سایز دیتاست بخاطر اینکه تعدادتون کم هست شبکه مجددا آورفیت خواهد شد
مرسی از راهنمایی تون.
پس برای حل مشکلم چه کار باید بکنم؟ با این اوصاف که میگید نه فاین تون جواب میده نه دیتا اگمنتیشن.
البته من موارد این چنینی زیاد دیدم که با همین تعداد تصاویر ورودی transfer learning انجام میدن و اساسا اصول فاین توین همینه. که وقتی تعداد ورودی ها کمه ، بشه روی یک شبکه از پیش اموزش داده شده اجرا بشه.
ممکنه راهنمایی کنید که چطور باید کرنل و استراید لایه های میانی را تغییر بدم؟ چون قاعدتا وقتی لایه کانولوشن اول رو تغییر میدن، این مساله روی باقی لایه ها هم تاثیر میذاره . میدونم که استراید بیشتر ، بهتر میتونه تصویر رو از همون اوایل یادگیری کوچیک بکنه. اما اینکه یه لایه را تغییر بدیم، چطور میتونیم باقی لایه ها رم با اون هماهنگ کنیم برام مساله است.
بله تنها راه باقی مانده فاین تون هست (البته اون هم با این تعداد کم نمونه نتیجه خیلی جالبی نخواهد داشت) برای این کار باید مدلی پیدا کنید که روی دیتاست مرتبط با موضوعتون کار شده باشد.
درمورد سوال اخرتون هم، لایه های کانولوشن وابسته به سایز ورودی نیستن، پس تغییر در یکی الزاما باعث نمیشه شما مجبور بشید لایه ی دیگر را هم تغییر بدید البته ممکنه شما بخواهید برای عملکرد بهتر شبکه تون تغییراتی هم در لایه های بعد اعمال کنید
0 امتیاز

batch size را 1 بگذارید
و همچنین از عدم استفاده از کارت گرافیکی در برنامه های دیگر اطمینان حاصل فرمایید

توسط (438 امتیاز)
ویرایش شده توسط
...