超链接:深度学习工作常用方法汇总,矩阵维度变化、图片、视频等操作,包含(torch、numpy、opencv等)
1. torch.view()
torch版:
x.view()
功能同reshape相似,但是 view() 只能操作 tensor,reshape() 可以操作 tensor 和 ndarray。view() 只能用在 contiguous(连续) 的变量上。如果在 view 之前用了 transpose, permute 等切片处理,需要用 contiguous() 来返回一个 contiguous copy。
pytorch 中的 torch.reshape() 大致相当于 tensor.contiguous().view()
import torch
x = torch.tensor([[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]])
b = x.view((4, 3, 1))
c = x.view((1, 3, 4))
d = x.view((12, 1))
print('x_shape:', x.shape) # torch.Size([2, 2, 3])
print('b_shape:', b.shape) # b_shape: torch.Size([4, 3, 1])
print('c_shape:', c.shape) # c_shape: torch.Size([1, 3, 4])
print('d_shape:', d.shape) # d_shape: torch.Size([12, 1])
print('x:', x)
print('b:', b)
print('c:', c)
print('d:', d)