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

با تشکر

دسته بندی ها

0 امتیاز

با عرض سلام و خسته نباشید
من داده هام رو روی شبکه alexnet آموزش دادم اما loss تغییر چندانی نمیکنه و کم نمیشه . مشخصات solver به صورت زیر تنظیم کردم :
چون تعداد تصاویر آموزشم 661 تصویر بود ، بچ سایز مرحله ی آموزش و 60 گرفتم تا بعد از 110 تکرار حدودا 10 ایپاک تکرار شده باشه .
همانطور که آقای حسن پور توی سایت گفتن ، حاصلضرب عدد بچ در مرحله ی تست و عدد test_iter باید برابر با تعداد تصاویر تست باشه ، برای همین بچ سایز در مرحله ی تست رو 8 و تعداد itest_iter را 28 گرفتم چون 224 تصویر تست داشتم .
base-lr ابتدا 0.01 بود اما چون loss زیاد کم نمیشد روی 0.001 گذاشتم و به همین خاطر مقدار momentum=099 انتخاب کردم . اما باز هم loss از 2 کمتر نمیشه و دقت هم حداکثر 0.098 میشه . ممنون میشم راهنماییم کنین.
این مربوط به آموزش شبکه از اول بود . اگه finetune کنم و فقط لایه ی آخر trainبشه اول loss کم میشه اما بعد از 10 تکرار زیاد میشه و به nan میرسه

فایل solver :

net: "/home/amir/Develop/caffe/models/my_corel_caffenet/train_val.prototxt"
test_iter: 28
test_interval: 110
base_lr: 0.01
lr_policy: "step"
gamma: 0.1
stepsize: 100000
display: 1
max_iter: 115
momentum: 0.9
weight_decay: 0.0005
snapshot: 100
snapshot_prefix: "/home/amir/Develop/caffe/models/my_corel_caffenet/caffenet_train"
solver_mode: CPU
توسط (111 امتیاز)
ویرایش شده توسط
سلام . موقع فاین تونینگ اولا به غیر از لایه اخر بقیه لایه ها رو فریز کنید مگه اینکه دیتای فعلی با دیتایی که قبلا مدل اموزش دیده خیلی متفاوت باشه و در این صورت باید دیتای شما هم یه حد خاصی باشه چون بسته به میزان تفاوت لایه های بیشتری باید تغییر کنن و تنظیم بشن .
ضمنا نرخ یادگیری شما باید خیلی کمتر باشه همینطور سعی کنید weight decay رو هم چک کنید که مبادا مقدار بالای ریگولاریزیشن باعث اندرفیتینگ شبکه نشه.
سلام . من موقع فاین تیونینگ اسم لایه ی آخر و تغییر دادم و اسم بقیه ی لایه ها رو بدون تغییر گذاشتم منظورتون همینه از فریز ؟
کار weight decay  چی هست و باید چند باشه حدودا تا خراب نشه ؟؟
ممنون
سلام. آقا محسن یکسری توضیحات دادن. من پیشنهاد میکنم شما بخش فاین تونینگ رو (یکباردیگه) ببینید. باز اگه مشکلی بود بفرمایید. weight decay یه پارامتر regularization هست که برای جلوگیری از اورفیتینگ استفاده میشه. این مقدار باید متناسب با تعداد پارامترها و دیتای شما تنظیم بشه. در حالت عالی مقدار زیاد باعث اندرفیت شدن شبکه و مقدار کم یا نبود اون ممکنه باعث ایجاد اورفیت بشه.
سلام خیلی ممنون من دوباره فاین تیون کردم و loss کم شد اما وقتی واسه classification تصویر ورودی و میدم هر 5 کلاس امتیاز مساوی دارن
برچسب های نمونه ها رو با فرمت درست وارد کردین؟
بله درست شد .ممنون

1 پاسخ

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

سلام منظور آقا حسین صفر کردن نرخ یادگیری لایه های دیگه هستش.
نرخ یادگیری رو کمتر کنید. ترجیحا ابتدا تمام لایه های کانولوشن رو فریز کنید و تنها امکان یادگیری به لایه های تمام متصل بدین. weight decay جلوی افزایش بیش از اندازه وزنهای شبکه رو میگیره و در مواقع finetune پارامتر اساسی و حیاتی ای محسوب می شه.
در مورد آموزش از ابتدا: با تعداد نمونه های شما امکان پذیر نیستش

توسط (535 امتیاز)
انتخاب شده توسط
...