以下深度学习数据通常采用tensor格式,需要调整形状: 大多数情况下,只关注view或更高版本的结果(例如输出大小),而不是流程。 但是,我们需要关注这是如何变换的,不仅要知道结果,还需要知道过程。
假设这里有tensor。
打印的结果是,两个batch的每个矩阵都是2x3的形状。 在这种情况下,可以认为两个矩阵重叠。
然后对他进行reshap view等操作。 所有这些操作都可以改变tensor的形状,达到相同的结果。
结果显示,此view按批次提升矩阵,即使bzdqz为横向
现在换个游戏,把它换成列,看看还是不是把bzdqz放在一边,然后试试它在view后能不能转换回来。 提示,其中view的-1是让函数自动推论输出形状。从另一个角度来说 -1相当于是一个未知数x,让函数自己去求它的值,而这个x要满足输出的形状的乘积等于原始形状的乘积,即22x=223,自动求解x=3
从该结果可以看出,改变行数的view也将先前的矩阵bzdqz各分为2组。 然后我们发现view会变成原来的样子
让我们再试一次增加维度的情况
只要满足上面的方程关系,是都可以进行view操作的,也是进行将矩阵横向拉伸,每增加一个维度就是增加了一个括号最后,我们发现这种情况也会恢复到原来的状态