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

با تشکر

دسته بندی ها

0 امتیاز

سلام من شبکه cnn برا تشخیص بیماری با matconvnet طراحی کردم که در زیر لایه ها با پارامترهای آن هست و جواب خوبی هم گرفتم. میخواستم بدونم روش قرار گیری لایه ها منطقی هست؟ همچنین از لایهfully conected استفاده نکردم و به جای آن از دوتا لایه کانولوشن در آخر استفاده کردم با توجه به اینکه دو کلاس هم دارم میخواستم بدونم درست هست؟

f=1/100 ;
net.layers = {} ;
net.layers{end+1} = struct('type', 'conv','weights', {{f*randn(11,11,1,50, 'single'), zeros(1, 50, 'single')}},  'stride', 4, 'pad', 0) ;
net.layers{end+1} = struct('type', 'pool',
'method', 'max',
'pool', [3 3], 
'stride', 2,
'pad', 0) ;
net.layers{end+1} = struct('type', 'conv', 
'weights', {{f*randn(5,5,50,256, 'single'), zeros(1,256,'single')}}, 
'stride', 1, 
'pad', 0) ;
net.layers{end+1} = struct('type', 'pool', 
'method', 'max',
'pool', [3 3], 
'stride', 2, 
'pad', 0) ;
net.layers{end+1} = struct('type', 'conv',
'weights', {{f*randn(3,3,256,512, 'single'), zeros(1,512,'single')}}, 
'stride', 1, 
'pad', 0) ;
net.layers{end+1} = struct('type', 'relu') ;
net.layers{end+1} = struct('type', 'conv',
'weights', {{f*randn(2,2,512,1024, 'single'), zeros(1,1024,'single')}},
'stride', 1, 
'pad', 0) ;                             
 net.layers{end+1} = struct('type', 'conv',
'weights', {{f*randn(1,1,1024,2, 'single'), zeros(1,2,'single')}}, 
'stride', 1, 
'pad', 0) ;                      
net.layers{end+1} = struct('type', 'softmaxloss') ;
توسط (100 امتیاز)
لطفا کد رو برای خوانایی بیشتر داخل باکس مخصوص کد بگذارید.

1 پاسخ

0 امتیاز

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

توسط (4.3k امتیاز)
سلام
ممنون از پاسخگوییتان
منظور از ترتیب قرار گیری مثلا این بود که من فقط یک لایه relu قرار دادم میخاستم بدونم نیازی نیست بعد از هر لایه کانولوشن یک لایه relu قرار بدهم که این مقاله که معرفی کردید مطالعه میکنم
ممنونم
سلام
لایه رلو nonlinearity شبکه رو افزایش میده و این باعث بهتر شدن خروجی شبکه میشه . خود عملیات کانولوشن یه عملیات خطی هست و بنابر این بدون قرار گیری یک اپراتور غیر خطی بین چند عملیات خطی باعث میشه فرقی بین یک عملیات خطی و یا چند عملیات خطی پشت سر هم نباشه . بطور ساده یعنی فرقی نمیکنه شما یه لایه داشته باشید یا ۱۰ تا لایه پشت سر هم . از پشت سر هم قرار دادن اینها شما به سطح انتزاع بالاتر نمیرسید.
البته این هم هست که وجود چند فیچرمپ و ارتباط بین اونها باعث اعمال یک ماهیت غیرخطی در لایه کانولوشن ممکنه بشه و اون لایه ها صرفا یک عملیات خطی ساده رو انجام ندن اما حتی با این فرض هم قرار دادن رلو و یا یک اپراتور غیرخطی باعث افزایش nonlinearity و بدست دادن سطوح انتزاع بالاتر میشه (کشف و کپچر مفاهیم غیرخطی در فیچرمپ های ورودی میشه که این عمل با یک اپراتور خطی ممکن نیست). پس سعی کنید از رلو بعد از هر لایه کانولوشن استفاده کنید. همچنین برای تسریع همگرایی و همینطور بهتر شدن تعمیم سعی کنید از بچ نرمالیزیشن هم بهره ببرید و باز سعی کنید بجای اینکه از مقداردهی اولیه رندوم برای وزنها استفاده کنید از مقداردهی اولیه Xavier بهره ببرید )
ممنون بابت راهنماییتون. لطف کردید.
...