Tensorflow PyTorch Conv2D为零的输入张量返回非零输出?
如果将仅由零组成的数组输入到Conv2D图层,则输出也应仅由零组成。在TensorFlow中,情况就是这样。但是,在PyTorch中,情况并非如此。下面是一些非常简单的Python示例代码来演示这一点。为什么Pytork在这种情况下输出非零数字Tensorflow PyTorch Conv2D为零的输入张量返回非零输出?,tensorflow,pytorch,conv-neural-network,Tensorflow,Pytorch,Conv Neural Network,如果将仅由零组成的数组输入到Conv2D图层,则输出也应仅由零组成。在TensorFlow中,情况就是这样。但是,在PyTorch中,情况并非如此。下面是一些非常简单的Python示例代码来演示这一点。为什么Pytork在这种情况下输出非零数字 导入火炬 将numpy作为np导入 image=np.zero((3,3,3),dtype=np.float32) batch=np.asarray([image]) a=火炬nn.Conv2d(3,3,1) b=a(火炬张量(批次)排列(0,3,1,2
导入火炬
将numpy作为np导入
image=np.zero((3,3,3),dtype=np.float32)
batch=np.asarray([image])
a=火炬nn.Conv2d(3,3,1)
b=a(火炬张量(批次)排列(0,3,1,2))
打印(b.permute(0,2,3,1))
与此不同,PyTorch使用非零值初始化偏差(请参阅):
def reset_参数(自)->无:
初始kaiming_均匀(自重,a=math.sqrt(5))
如果self.bias不是None:
扇入,计算扇入和扇出(自重)
绑定=1/math.sqrt(扇入)
初始一致性(自偏压,-界,界)
谢谢。就这么简单。设置bias=0使输出为0。