【发布时间】:2021-09-22 11:57:37
【问题描述】:
我创建了一个代码,该代码生成一个形状为(12,12) 的矩阵,用于使用卷积神经网络进行彩色图像分析。
我的脚本的输入是一个形状为(5,3,12,12) 的torch 张量。我使用 detach().numpy() 去掉了值 5 和 3。
脚本:
for k in range(5):
for l in range(3):
y=x[k][l].detach().numpy()
m,n= y.shape
im=np.pad(y,((1,1),(1,1)),'constant')
Enhanced = np.zeros((m,n))
for i in range(1,m+1):
for j in range(1,n+1):
...
z.append(Enhanced)
... 代表一个我不想打扰你的简单函数。
z 是增强型列表,它们是 numpy 数组。
所以我的目标是从形状为(5,3,12,12) 的增强型numpy 数组创建一个火炬张量。
我在 for 循环内的代码中添加了这一行,我得到:
r=torch.Tensor(z)
print(r.shape)
然后打印 r.shape 我明白了:
torch.Size([3, 12, 12])
torch.Size([6, 12, 12])
torch.Size([9, 12, 12])
torch.Size([12, 12, 12])
torch.Size([15, 12, 12])
所以我的理解是我需要堆叠那些 r 张量。
我使用了函数t=np.stack(r)
但我得到的是最后一次执行的形状,即torch.Size([15, 12, 12])
那么我该如何修改它以获得(5, 3, 12, 12)的形状@
【问题讨论】:
标签: torch numpy python numpy pytorch