最近在改网络模型遇到的一个张量相加问题引发了思考
对维度,通道数,长宽等有可能不同的两个张量相加,什么情况下能进行相加什么情况下又不能相加进行了一个实验
当两个通道数不同的张量相加
这种情况是能相加的,使用[1,1,14,14]和[1,256,14,14]的张量进行相加
x = torch.ones([1,1,14,14])
y = torch.ones([1,256,14,14])
t = x + y
print(t.size())
运行结果为torch.size([1,256,14,14])
两个维度不同,通道数不同的张量相加
这种情况是能相加的,使用[1,1,14,14]和[2,256,14,14]的张量进行相加
x = torch.ones([1,1,14,14])
y = torch.ones([2,256,14,14])
t = x + y
print(t.size())
结果是[2,256,14,14]
维度不同,通道数相同时
也能相加,最终结果的维度是大的那一个