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

با تشکر

دسته بندی ها

0 امتیاز

با سلام
بعد از نصب caffe و آموزش مدل cifar10_quick که از مثال های موجود در caffe است accuracy = 0.7542 و loss = 0.735139 شد.
سپس یک لایه ی پایتون ساده بعد از لایه ی relu3 به شبکه ی مذکور اضافه کردم که هدف این لایه این است که خروجی را از لایه ی قبلی بگیرد و به عنوان ورودی به لایه ی بعد بدهد. بنابراین انتظار میرود که مقادیر accuracy و loss تغییری نکنند. اما بعد از اضافه کردن این لایه accuracy = 0.1 و loss = 2.30242 است!‌ لطفا راهنمایی کنید.
کد زیر کلاس این لایه را نشان میدهد:

import caffe
import numpy as np

class My_Custom_Layer(caffe.Layer):
def setup(self, bottom, top):
    if len(bottom) != 1:
        raise Exception("Wrong number of bottom blobs")
    
def forward(self, bottom, top):
    top[0].data[...] = bottom[0].data
    
    
def reshape(self, bottom, top):
    top[0].reshape(*bottom[0].shape)
    pass

def backward(self, propagate_down, bottom, top):
   

    """
        This layer does not back propagate
    """

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

1 پاسخ

0 امتیاز

سلام
شما تابع بک پراپ رو هم باید پیاده سازی میکردید

def backward(self, top, propagate_down, bottom):
  bottom[0].diff[...] = top[0].diff

علاوه بر اون شکل تابع شما هم اشتباه هست که باید بصورت بالا تغیرش بدید.

توسط (4.3k امتیاز)
ممنون از پاسختون. حالا اگر قرار باشه در این لایه top[1] هم داشته باشیم که از  اعمال تغییراتی بر روی bottom بدست میاد و top[0] به یک لایه و top[1] به لایه ی دیگه ای بره و نهایتا خروجی این دو لایه باهم concat بشه تابع backward به چه صورت باید نوشته بشه؟
من تو این بخش کفی وارد نشدم هیچوقت چون مستندات درست و حسابی نداشت. به نظرم این رو در استک اورفلو مطرح کنید اونجا Shai معمولا به این جورسوالات جواب میده .
به غیر از اون باید خودتون برید سورس کد کفی رو بخونید تا متوجه بشید شیوه انجام کار به چه صورتی هست.
...