torch.shape:相当于把data先线性排列然后再组装
例子
import torch import torch.nn as nn data=torch.arange(72,dtype=torch.float32).reshape(2,4,3,3) print(data) print(data.reshape(-1,18,4))
torch.permute相当于对内存排布进行调整,
重构数据维度 data_permute=torch.permute(data,(0,2,3,1))
冒昧用for循环来实现一下,源码肯定不是这么写的,理解这个函数功能就好
import torch
import torch.nn as nn
data=torch.arange(72,dtype=torch.float32).reshape(2,4,3,3)
my_data_per=torch.zeros((2,3,3,4),dtype=torch.float32)
for i in range(data.shape[0]):
for j in range(data.shape[1]):
for k in range(data.shape[2]):
for z in range(data.shape[3]):
my_data_per[i,k,z,j]=data[i,j,k,z]
pytorch_data_per=data.permute(0,2,3,1)
print(my_data_per)
print(pytorch_data_per)