错误原因:
我们使用view()函数的时候,稍有不慎会碰到这样的错误:
RuntimeError: invalid argument 2: view size is not compatible with input tensor's....
这是因为tensor经过转置后数据的内存地址不连续导致的。
解决方案:
在view()函数前加contiguous(),使其变为连续就可以了,如下所示:
out = out.contiguous().view(2, 3)
牢记:
目前pytorch只要是transpose()和permute()这两个函数用过后,tensor都会变得不再连续,就不可以使用view()。
我们只需要记住了,使用view()之前,只要使用了transpose()和permute()这两个函数一定要contiguous()。
调用contiguous()时,会强制拷贝一份tensor,让它的布局和从头创建的一模一样。