初学者在使用pytorch框架定义神经网络时,经常会在代码中看到:
这样的用法。
view()的作用相当于numpy中的reshape,重新定义矩阵的形状。
一、例1 普通用法:
import torch
v1 = torch.range(1, 16)
v2 = v1.view(4, 4)
其中v1为1*16大小的张量,包含16个元素。
v2为4*4大小的张量,同样包含16个元素。注意view前后的元素个数要相同,不然会报错。
二、例2 参数使用-1
import torch
v1 = torch.range(1, 16)
v2 = v1.view(-1, 4)
和图例中的用法一样,view中一个参数定为-1,代表动态调整这个维度上的元素个数,以保证元素的总数不变。因此两个例子的结果是相同的。