当将多通道图像卷积成一个通道图像时,通常只能有一个偏置变量(因为输出是一个通道)。如果我想设置局部偏差,即为输出图像的每个像素设置偏差,我该如何在caffe和torch中做到这一点?
在Tensorflow中,这非常简单。你只需设置一个偏差矩阵,例如:
数据为25(height)X25(width)X48(channels)
权重为3X3(kernel size)X48(input channels)X1(output channels)
偏见是25X25
,
然后,
hidden = tf.nn.conv2d(data, weights, [1, 1, 1, 1], padding='SAME')
output = tf.relu(hidden+biases)
caffe ortorch中是否有类似的解决方案?
答案 0 :(得分:3)
对于caffe,这是一个比例图层帖子:Scale layer in Caffe。比例图层只能提供一个变量偏差。 答案是偏见层。偏置层可以有一个权重矩阵,将其视为偏差。
对于火炬,火炬有一个nn.Add()层,几乎与tensorflow的tf.add()函数一样,所以nn.Add()层就是解决方案。
所有这些都已通过实际模型证明。
但是仍然非常感谢@Shai