一、张量的数据类型转换
1.指定类型的转换
代码
import torch
import numpy as np
if __name__ == '__main__':
t1 = torch.rand(3, 3)
print(t1.dtype)
# 进行数据类型转换
t1 = t1.type(torch.float16)
print(t1.dtype)
结果
2.快速转换为常用类型
代码
import torch
import numpy as np
if __name__ == '__main__':
t1 = torch.rand(3, 3)
print(t1.dtype)
# 进行数据类型转换
t1 = t1.long()
print(t1.dtype)
# 进行数据类型转换
t1 = t1.float()
print(t1.dtype)
结果
二、张量的运算
1.广播原则
代码
import torch
import numpy as np
if __name__ == '__main__':
t1 = torch.rand(3, 3)
print(t1)
t1 = t1 + 3
print(t1)
结果
代码
import torch
import numpy as np
if __name__ == '__main__':
t1 = torch.rand(3, 3)
t2 = torch.ones(3, 3)
print(t1)
t1 = t1 + t2
print(t1)
结果
代码
import torch
import numpy as np
if __name__ == '__main__':
t1 = torch.rand(3, 3)
t2 = torch.ones(3, 3)
print(t1)
t1 = t1.add(t2)
print(t1)
结果
2.直接改变原值
在张量的操作方法后加 _ 将会直接改变原值
代码
import torch
import numpy as np
if __name__ == '__main__':
t1 = torch.rand(3, 3)
t2 = torch.ones(3, 3)
print(t1)
t1.add_(t2)
print(t1)
结果
3.矩阵乘法
代码
import torch
import numpy as np
if __name__ == '__main__':
t1 = torch.rand(3, 4)
t2 = torch.randn(4, 3)
t = t1.matmul(t2)
print(t.size())
tt = t1 @ t2
print(tt.shape)
结果
4.将维度为0的Tensor转换为Python的数据类型
代码
import torch
import numpy as np
if __name__ == '__main__':
t1 = torch.rand(3, 4)
t = t1.sum()
print(t.item())
结果
5.将Tensor与numpy数据类型的相互转换
代码
import torch
import numpy as np
if __name__ == '__main__':
t = torch.from_numpy(np.random.randn(3, 4))
print(t)
print('-------------------------------------')
t = t.numpy()
print(t)