【问题标题】:Network does not converge after creating a simple identity layer in pycaffe在 pycaffe 中创建简单的身份层后网络不收敛
【发布时间】:2017-12-19 17:05:26
【问题描述】:

这是一个简单的层,它将底部的 blob 传递到顶部,并且什么都不做。

import caffe
import numpy as np

class MyCustomLayer(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

但是,当在网络中使用时,网络不会收敛,并且会保持在 0.1 精度(而在使用此层之前为 0.75%)
我在这里做错了什么?

【问题讨论】:

    标签: neural-network deep-learning caffe gradient-descent pycaffe


    【解决方案1】:

    如果你不反向传播梯度,你希望你的网络如何收敛?您还需要实现backward

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

    请注意,backward() 的输入参数与其他方法不同,也与您在问题中所写的不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-24
      • 2019-04-13
      • 2021-05-02
      • 2012-03-03
      • 1970-01-01
      • 2018-12-15
      • 2016-05-13
      • 2018-03-23
      相关资源
      最近更新 更多