卷积梯度权重

时间:2019-11-21 01:08:09

标签: conv-neural-network

使用numpy实现卷积层权重后的梯度没有非线性之后,我遇到了问题。到目前为止,我已经尝试过类似的操作(我是代码的新手,我知道它很丑):

def grads_wrt_params(self, inputs, grads_wrt_outputs):


        k0 = self.kernels.shape[0]
        k1 = self.kernels.shape[1]
        k2 = self.kernels.shape[2]
        k3 = self.kernels.shape[3]
        x = np.ndarray(shape = (inputs.shape[0], k1, k2, k3))
        for i in range(0,inputs.shape[0]):
            for j in range(0, self.kernels.shape[0]):
                y = np.zeros((k2,k3))
                for s in range(0, inputs.shape[1]):
                    y += signal.convolve2d(grads_wrt_outputs[i,j,:,:],inputs[i,s,:,:],  mode = 'valid')
                x[i,j,:,:] = y

        return x  

其中inputs.shape =(图像数,通道数,宽度,高度)  kernels.shape =(输出过滤器的数量,输入通道的数量,width1,height1)

我在做什么错了?

0 个答案:

没有答案