Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow PyTorch Conv2D为零的输入张量返回非零输出?_Tensorflow_Pytorch_Conv Neural Network - Fatal编程技术网

Tensorflow PyTorch Conv2D为零的输入张量返回非零输出?

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

如果将仅由零组成的数组输入到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))
打印(b.permute(0,2,3,1))
与此不同,PyTorch使用非零值初始化偏差(请参阅):

def reset_参数(自)->无:
初始kaiming_均匀(自重,a=math.sqrt(5))
如果self.bias不是None:
扇入,计算扇入和扇出(自重)
绑定=1/math.sqrt(扇入)
初始一致性(自偏压,-界,界)

谢谢。就这么简单。设置bias=0使输出为0。