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

با تشکر

دسته بندی ها

0 امتیاز

سلام
در تعریف شبکه alexnet در تعریف لایه های کانولوشن ۲و۴و۵ پارامتری تحت عنوان group که با ۲ مقداردهی شده را داریم. که این پارامتر طبق سرچ هایی که انجام دادم باعث شکسته شدن لایه به دوشاخه میشه مثلا لایه کانولوشن ۲ دارای سایز ۵×۵×۴۸×۲۵۶ هست در صورتی که لایه ی قبل از اون (کانولوشن ۱) دارای ۹۶ فیلتر هست. این نشون میده که این پارامتر باعث شکسته شدن لایه میشه، سوال من این هست که بعد از شکسته شدن این لایه نحوه اتصالش با لایه قبل و بعد به چه صورت هست چراکه لایه های کانولوشن ۱ و ۳ هیچکدوم این پارامتر رو ندارن.
من زمانی که خواستم شبکه رو تعریف کنم(در فریم ورک keras) برای اتصال لایه کانولوشن ۲ به کانولوشن ۳ از لایه merge استفاده کردم. یعنی دو کانولوشن با سایزهای ۵×۵×۴۸×۱۲۸ را با هم merge کردم . آیا این دقیقا معادل چیزی هست که داره توی caffe هم اتفاق میافته ؟
ممنون

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

1 پاسخ

0 امتیاز

سلام
قبلا اینجا جواب دادم لطفا اینجا رو مطالعه کنید : چرا در معماری alexnet تمامی لایه ها به دو قسمت تقسیم شده اند؟
(خلاصه : دلیل اون تقسیم بندی یه بحث تکنیکی بوده که نیازی به انجامش ندارید اصلا)

توسط (4.3k امتیاز)
این که چرا این تقسیم بندی انجام شده رو متوجه هستم،
در ضمن grouping فقط داره توی سه تا از لایه های کانولوشن اتفاق میافته. من زمانی که این ساختار رو توی کراس پیاده می کنم، برای اتصال لایه ها از لایه merge استفاده می کنم، من به دلیل اینکه هدفم مقداردهی اولیه لایه ها با وزن هایی هست که توسط مدل caffe ذخیره کردم باید معماری رو دقیقا معادل مدل caffe پیاده کنم .
سوال من این هست که من مثلا برای مقداردهی وزن های لایه کانولوشن ۲ ، که سایز ۲۵۶×۴۸×۵×۵ داره دوتا کانولوشن گذاشتم و اولی رو با ۱۲۸ تای اول و دومی رو با ۱۲۸ تای دوم مقداردهی کردم. ینی دوتا کانولوشن دارم با سایزهای ۱۲۸×۴۸×۵×۵، آیا این کار دقیقا چیزی هست که داره توسط پارامتر grouping اتفاق میافته. منظورم مقدار وزن هاست.
در گروپینگ = 2 یعنی نیمه اول فیلترها به نیمه اول فیچرمپ های ورودی وصل میشن و نیمه دوم فیلترها به نیمه دوم فیچرمپ ها(و همینطور برای اعداد بالاتر). شما هم وقتی هر بخش رو حساب کردید همه رو concatکنید در قالب یه فیچرمپ و بفرستید به لایه بعد.
میتونید تبدیل رو از طریق کد دیگران انجام بدید مثل اینجا :
http://sujitpal.blogspot.com/2017/01/migrating-vgg-cnn-from-caffe-to-keras.html
و اینجا : https://github.com/MarcBS/keras
...