用来对一个tensor进行填充。最典型的就是图片了,原来是2*2的,现在想要变成3*3的,那么就需要填充,此时有很多选择,例如是在原来的右上进行填充还是左下?又或者是左上?等等。
这个函数就可以用来实现这些功能。
torch.nn.functional.pad(input, pad, mode='constant', value=0.0)
我们只关心第二个参数pad,其他不要管。pad是一个元组,格式如下:
(1,1)表示在最后一个维度,前面填充1个0,后面填充1个0(1,0)表示在最后一个维度,前面填充1个0,后面不填充。(1,1,1,1)表示最后两个维度都要填充,并且上下左右各填充1个0。.....
下面,我们根据上面举的3个案例进行实战:
import torchimport torch.nn.functional as tnf
x = torch.tensor([[1, 2],[ 3,4]])
print(x)print(tnf.pad(x,(1,1)))#案例1print(tnf.pad(x,(1,0)))#案例2print(tnf.pad(x,(1,1,1,1)))#案例3
那开头的2*2怎么填充为3*3的图片呢?假设我们在右边和下边各填充1个0,那么就是这样的:
print(x)print(tnf.pad(x,(0,1,0,1)))