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

با تشکر

دسته بندی ها

0 امتیاز

سلام...من در هنگام استفاده از لایه batch normalization ارور زیر رو میگیرم...کارت گرافیکمم ۱۰۷۰ هست...ممنون میشم ایراد کارم رو بیان کنید..همچنین احساس میکنم performance سیستمم به شدت پایین میاد.....با تشکر

https://pastebin.com/HcteuCPm

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

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

سلام
تا اونجایی که من دیدم مشکلی در شبکه شما وجود نداره
خوده لایه Batchnormalization حافظه زیادی مصرف می‌کنه اما ممکنه خوده دیتاستی که استفاده می‌کنید هم خیلی بزرگ باشه برای اینکه مستقیم باهاش توی حافظه کار کنید
برای همین چندتا گزینه رو تست کنید :

1- اول از همه batch size تون رو کوچیک تر کنید. الان فکر می کنم 256 باشه که خیلی بزرگه. بهتره با چیزی مثل 32 شروع کنید. به خصوص اگه قبل از اینکه لایه Batch normalization اضافه کنید، شبکه به درستی کار می کرده

2 - اگه امکانش هست از تصاویر کوچیکتری استفاده کنید.

اینم که performance سیستم پایین میاد کاملا طبیعیه وقتی حافظه پر میشه، چه حافظه RAM باشه، که تاثیرش میشه swapping زیاد با هارد و هاردتون هم به شدت درگیر میشه، چه حافظه GPU باشه

توسط (1.6k امتیاز)
انتخاب شده توسط
سلام...خیلی ممنونم ازتون...لطف کردید...والا همین کاری که فرموده بودینو انجام دادم .حتی بچ تست و ترین رو روی ‍۱۰ هم گذاشتم باز هم همون ارور رو میده...راه حل دیگه ای بنظرتون نیست؟ تعداد تصاویر تستم ۲۷۹۸ و تصاویر ترین ۶۵۱۹ تا هست و همینطور ۲۲۷ در ۲۲۷ هستن و امکان ویرایش تصاویر رو ندارم...
https://pastebin.com/BpWXr14J
سه تا گزینه دیگه رو هم تست کنید لطفا
1 - ببینید بدون batch normalization باز هم مموری کم میاد؟
2- data augmentation یا همون لایه transform_param رو غیر فعال کنید و بازهم تست کنید
چون من مطمئن نیستم که caffe تمامی داده‌ها رو یکباره تولید می‌کنه یا توی هر mini batch این اتفاق می افته
3 - تعداد داده‌های train رو کم کنید ببینید به چند درصد که کاهش بدید دیگه با خطای out of memory مواجه نمیشید(فعلا دقت مهم نیست)
ممنونم از راهنمایی هاتون...لطف میکنید...اون کاری که فرمودینو انجام دادم
۱-بله بدون بچ نورمالیزیشن بدون هیچ اشکالی شبکه ام ترین میشه
۲-این کار رو انجام دادم و دوباره ارور out of memory  گرفتم
۳-داده هام رو نمیتونم کم کنم چون به فرمت lmdb  هست...
کارت گرافیکم خوبه و تا حالا اصلا این ارور رو نداده بود ...
=======================================
من الان یکبار دیگه شبکه رو ترین کردم  اما اینبار بجای اینکه بچ نورمالیزیشن رو بعد از لایه con1 قرار بدم بعد از لایه conv2 قرار دادم و شبکه داره ترین میشه...منتها من اصلا نمیدونم چی مینویسه و منظورش چیه چون با نوشته های ترین دیگم فرق داره //چرا انقدر دیر accuracy  رو اعلام میکنه؟حتی بنظرم شبکه خیلی سریعتر ترین میشه و زمانش کمتر میشه..من کدوم ایتریشن رو به عنوان دقت باید اعلام کنم؟ ....میشه راهنمایی کنید...خیلی ممنونم ازتون
این فایل لاگشه...
https://pastebin.com/GhBUYskY
=======================================
اپدیت اخر: برای انکه این لایه بصورت درست و کامل کار کنه ، باید در هر 3 تا لایه استفاده بشه و فقط در لایه اول ارور میدهد...با تشکر از آقای نوروزی
خواهش می‌کنم، خوشحالم که مشکلتون حل شد
در مورد بالا رفتن سرعت training، این یکی از ویژگی‌های batch normalization هستش باعث معروفیت سریعش هم شد.
در مورد اعلام accuracy هم، معمولا میگید که ما مثلا 1000 epoch شبکه رو train کردیم، و دقتش روی validation این هستش، روی test data هم اینه.
در عمل می‌تونید چند بار این 1000 epoch رو اجرا کنید و یا میانگین یا بهترین نتیجه رو گزارش کنید
حالا اینکه چرا 1000 تا، یا مثلا حدسی بوده و از تجربه قبلیتون استفاده کردید، یا اینکه early stopping این قضیه رو مشخص کرده یا اینکه مثلا گذاشتید برای 3000 تا epoch شبکه train شه ، بعد دیدید که وقتی به 1000 می رسید دیگه تغییرات آنچنانی ندارید یا ....
...