torch中一些代码小记
程序员文章站
2024-01-05 16:22:46
...
- torch中的维度改变 reshape() / view()
a=torch.ones([24,8,32])
b=a.reshape(-1,32)
c=a.view(-1,32)
print(b.shape) #torch.Size([192, 32])
print(c.shape) #torch.Size([192, 32])
- reshape() 和 view() 的区别
- 两者都是用来重塑tensor的shape的。view只适合对满足连续性条件(contiguous)的 tensor进行操作,而reshape同时还可以对不满足连续性条件的tensor进行操作,具有更好的鲁棒性。view能干的reshape都能干,如果view不能干就可以用reshape来处理。别看目录挺多,
reference:https://blog.csdn.net/Flag_ing/article/details/109129752
- torch中的维度扩展 unsqueeze
a=torch.ones([192,32])
a=a.unsqueeze(1)
print(a.shape)
# torch.Size([192, 1, 32])
- 与 unsqueeze 对应的降维 squeeze
a=torch.ones([192,32])
a=a.unsqueeze(1)
print(a.shape)
# torch.Size([192, 1, 32])
a=a.squeeze(1)
print(a.shape)
# torch.Size([192, 32])