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

با تشکر

0 امتیاز

سلام
من از شبکه ی MobileNet-SSD که در این لینک هست دارم استفاده می کنم.
برای آموزش مدل خودم، وقتی از caffemodel ارائه شده (mobilenet_iter_73000.caffemodel) برای finetuning استفاده می کنم، می تونم هر شبکه ای با هر تعداد کلاس آموزش بدم اما وقتی از snapshot های خودم استفاده می کنم و تعداد کلاس رو عوض می کنم خطای زیر رخ میده:

upgrade_proto.cpp:80] Successfully upgraded batch norm layers using deprecated params.
F0425 10:55:57.510852 14777 net.cpp:774] Cannot copy param 0 weights from layer 'conv11_mbox_conf_new'; shape mismatch.  Source param shape is 30 512 1 1 (15360); target param shape is 75 512 1 1 (38400). To learn this layer's parameters from scratch rather than copying from a saved net, rename the layer.
*** Check failure stack trace: ***
    @     0x7f693b4695cd  google::LogMessage::Fail()
    @     0x7f693b46b433  google::LogMessage::SendToLog()
    @     0x7f693b46915b  google::LogMessage::Flush()
    @     0x7f693b46be1e  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f693bce16eb  caffe::Net<>::CopyTrainedLayersFrom()
    @     0x7f693bce8445  caffe::Net<>::CopyTrainedLayersFromBinaryProto()
    @     0x7f693bce84de  caffe::Net<>::CopyTrainedLayersFrom()
    @           0x40a539  CopyLayers()
    @           0x40b994  train()
    @           0x4075b0  main
    @     0x7f693a3d9830  __libc_start_main
    @           0x407dd9  _start
    @              (nil)  (unknown)

یک سری لایه هست (6تا) که آخر اسمشون new داره مثل conv11_mbox_conf_new و در اونها پارامتر num_output ظاهرا ضریبی از تعداد کلاس ها هست، باید اسم این لایه ها رو عوض کنم؟
وقتی اسم این 6 لایه رو عوض می کنم دیگه خطا رخ نمی ده اما مقدار Loss از مقدار زیادی (حدود 30) شروع به کم شدن می کنه. در حالی که مقدار Loss قبلا به حدود 0.83 رسیده. البته بعد از 2000 تکرار به حدود 0.99 رسید.

این کار که اسم لایه ها رو عوض کردم درسته؟
راه بهتری نیست؟

من ممکنه بعدا هم بخوام کلاس جدید اضافه کنم، اگه یک سری کلاس اضافه مشخص کنم که نمونه ای براشون وجود نداره برای این که بعدا استفاده بشن، مشکلی پیش نمیاد؟

سوال شده توسط (102 امتیاز)
ویرایش شده توسط
سلام. این لایه که اسمش رو عوض کردید اخر شبکه اس یا نه ؟‌
سلام
یک لایه نبود، 6 تا لایه رو اسمشون رو عوض کردم که نوعشون PriorBox هست و اواخر شبکه هستن اما بعدشون چند لایه Concat هست و لایه ی آخرم MultiBox_Loss هست.
الان مقدار Loss کم شده و به نظر میاد مشکلی به وجود نیومده.
بازم اگه نظری دارید بفرمایید.
متشکرم

لطفا وارد شده یا عضو شوید تا بتوانید سوال بپرسید

...