我在pytorch中有一个张量 . 我想分别从_88190_位置开始在特定维度上扩展它,分别是该维度的第一个和最后一个元素 .
假设我有数据 [[0, 0, 0], [1, 1, 1], [2, 2, 2]]
的张量 . 操作 extend(dim, k)
会以这种方式改变它:
extend(0, 1)
:[ [0, 0, 0], [0, 0, 0] ,[0,0,0],[1,1,1],[2,2,2], [2, 2, 2], [2, 2, 2] ]
extend(1, 1)
:[ 0 ,0,0,0, 0 ],[ 1 ,1,1,1, 1 ],[ 2 ,2,2,2, 2 ]]
什么是有效的方法(符合 tensor.requires_grad=true
)
1 回答
您正在寻找torch.nn.functional.pad,
mode='replicate'
.但是,要使其工作,您需要注意两件事:
pad
不适用于2D张量 . 因此,您需要在pad
之前添加前导单例维度,然后再将squeeze
添加 .2.填充值
pad
的预期顺序与暗淡顺序相反 .