Deprecated: Function get_magic_quotes_gpc() is deprecated in /home/ustmbir/domains/deeplearning.ir/public_html/qa/qa-include/qa-base.php on line 1177
اضافه کردن کلاس جدید به caffemodel - پرسش و پاسخ یادگیری عمیق
به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

با سلام...
من یه مدل ترین کردن که دارای 20 کلاس می باشد حالا می خوام 5 کلاس جدید به آن اضافه کنم .آیا راهی دارد یا باید از اول با 25 کلاس ترین کنم؟
مفهوم Finetune برای همین کاره؟

توسط (100 امتیاز)

1 پاسخ

0 امتیاز

سلام.
برای این کار لازمه که فقط لایه آخر تمام متصل رو که تعداد نرون های ان در حال حاضر 20 است رو 25 کنید. برای این که بتوانید از مدلی که قبلا برای 20 کلاس آموزش دادید رو استفاده کنید اسم لایه اخر رو هم تغییر بدید. به این شکل با لود کردن وزن ها فقط وزن آخرین لایه لود نمی شود و بقیه لایه ها لود خواهند شد. دقت کنید که نرخ یادگیری رو درست انتخاب کنید تا 20 کلاس قبلی رو فراموش نکنید و علاوه بر اون کلاس های جدید رو هم آموزش بدید.

توسط (200 امتیاز)
با سلام
solver برای ترین 20 کلاس به ازای هر کلاس 300 تصویر :
net: "../../../examples/test/Solver/train_val.prototxt"
test_iter: 4
test_interval: 1000
base_lr: 0.01
lr_policy: "step"
gamma: 0.1
stepsize: 3000
display: 20
max_iter: 12000
momentum: 0.9
weight_decay: 0.0005
snapshot: 1000
snapshot_prefix: "../../../examples/test/caffenet_train/"
solver_mode: GPU

ودارم از CaffeNet استفاده می کنم،برای اضافه کردن 5 کلاس جدید باید این لایه را تغییر دهم ؟
layer {
  name: "loss1"
  type: "SoftmaxWithLoss"
  bottom: "fc8"
  bottom: "label"
  top: "loss"
}
و solver جدید به چه شکل می شود؟
آیا solverl بالا برای تعداد 20 کلاس و 300 تصویر به ازای هر کلاس درست تنظیم شده است؟
با تشکر
نیازی به تغییر solver نیست. فقط در کدی که در CMD اجرا میکنید ادرس وزن های پیش اموزش که با 20 کلاس اموزش داده شدند رو بدید. البته بد نیست نرخ یادگیری اولیه رو کم کنید تا کلاس های قبلی فراموش نشن. لایه fc8 رو هم باید تغییر بدید. اول که اسمش رو عوض کنید و مثلا بزارید fc8modified. علاوه بر اون پارامتر num_output: 20 v رو عوض کنید و بکنید num_output: 25
...