torch.view() 详解

超链接:深度学习工作常用方法汇总,矩阵维度变化、图片、视频等操作,包含(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)

猜你喜欢

转载自blog.csdn.net/qq_28949847/article/details/128568811