pytorch张量的维数延拓

pytorch张量的维数延拓,pytorch,gpu,tensor,dimensions,Pytorch,Gpu,Tensor,Dimensions,pytorch张量的维延拓方法是什么 -之前: 火炬尺寸([3,3,3]) -之后: 火炬尺寸([2,3,3,3]) 在numpy的领导下,工作方式如下: b = np.broadcast_to(a1[None, :,:,:], (2,3,3,3)) 这在pytorch下是如何工作的?我想利用gpu。提前感谢您的帮助 可以使用unsqeeze(下面使用0来指定第一个维度,即位置0),然后沿该维度重复数据两次(以及沿其他维度重复数据一次,即不重复) before=torch.tensor(…,

pytorch张量的维延拓方法是什么

-之前: 火炬尺寸([3,3,3])

-之后: 火炬尺寸([2,3,3,3])

在numpy的领导下,工作方式如下:

b =  np.broadcast_to(a1[None, :,:,:], (2,3,3,3))

这在pytorch下是如何工作的?我想利用gpu。提前感谢您的帮助

可以使用
unsqeeze
(下面使用
0
来指定第一个维度,即位置
0
),然后沿该维度重复数据两次(以及沿其他维度重复数据一次,即不重复)

before=torch.tensor(…,dtype=torch.float64,device='cuda:0')
之后=之前。取消查询(0)。重复(2,1,1,1)
我们可以用于您给定的预期结果

b=a1.展开([2,3,3,3])
tensor([[[[ 0.,  1.,  2.],
          [ 3.,  4.,  5.],
          [ 6.,  7.,  8.]],

         [[ 9., 10., 11.],
          [12., 13., 14.],
          [15., 16., 17.]],

         [[18., 19., 20.],
          [21., 22., 23.],
          [24., 25., 26.]]],


        [[[0., 1., 2.],
          [ 3.,  4.,  5.],
          [ 6.,  7.,  8.]],

         [[ 9., 10., 11.],
          [12., 13., 14.],
          [15., 16., 17.]],

         [[18., 19., 20.],
          [21., 22., 23.],
          [24., 25., 26.]]]], device='cuda:0', dtype=torch.float64)
b =  np.broadcast_to(a1[None, :,:,:], (2,3,3,3))