欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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]) 
相关标签: 代码相关问题