1. Squeeze函数与UNsqueeze函数
torch.squeeze()主要对数据的维度进行压缩,去掉维数为1的的维度
添加参数,则表示仅去掉该维数为1的维度
torch.unsqueeze()主要是对数据维度进行扩充。给指定位置加上维数为一的维度
2. View函数
a.view(i,j)将原矩阵转化为i行j列的形式,也可以多参数
当参数为-1时,表示不限制当前维度的维度数
3. Eq函数
torch.eq(a,b)判断两个tensor每个位置元素是否相等,相等为1,不等为0
4. Matmul函数和bmm函数
torch.matmul(a,b)和torch.bmm(a,b),都能实现对于batch的矩阵乘法
5. Transpose函数和 Permute函数
Tensor.permute(a,b,c,d,)可以对任意高维矩阵进行转置,但每次参数要写完整所有维度
torch.Transpose(Tensor, a,b)只能操作2D矩阵的转置
6. 格式转换 Image&Tensor
loader = transforms.Compose([transforms.ToTensor()])
unloader = transforms.ToPILImage()
7. 格式转换numpy&Tensor
sub_ts = torch.from_numpy(sub_img)
sub_np1 = sub_ts.numpy()
8. 颜色空间转换
cv2.cvtColor(img_BGR, cv2.COLOR_BGR2RGB)
9. Tensor 数据类型及其转换
定义:
- torch.Tensor()、torch.rand()、torch.randn() 均默认生成 torch.FloatTensor型
- 相同数据类型的tensor才能做运算
- torch.FloatTensor(2,3) #构建一个2*3 Float类型的张量
- torch.DoubleTensor(2,3) #构建一个2*3 Double类型的张量
转换:
import torch
# torch.double()将该tensor转换为double类型
double_tensor = tensor.double()
print(double_tensor.type())
# torch.float()将该tensor转换为float类型
float_tensor = tensor.float()
t1 = torch.LongTensor(3, 5)
# 转换为其他类型
t2=t1.type(torch.FloatTensor)