终于还是入坑了pyTorch,这个月的目标检测先停更一段时间,先学一段时间的GCN。立个flag,下个月把TensorFlow版的YOLOV5更完。
1. 创建 numpy 类型转为 Tensor 类型
由于numpy数组类型是最常用的,可以先使用numy创建数组,再从数组转为张量,基本数据类型保持不变,例如:np.float64 变成 torch.float64。
从numpy转为tensor类型的方法: torch.from_numpy( numpy数组 )
# 转换后的数据类型是对应的
import numpy as np
#(1)创建一个维度=1,长度=2的向量
data = np.array([2, 3.3])
# array([2. , 3.3])
# 将numpy类型转为tensor类型
data = torch.from_numpy(data)
# tensor([2.0000, 3.3000], dtype=torch.float64)
#(2)创建一个全为1的二阶矩阵
data = np.ones(shape=[2,3])
# array([[1., 1., 1.],
# [1., 1., 1.]])
# 转变为tensor类型
data = torch.from_numpy(data)
# tensor([[1., 1., 1.],
# [1., 1., 1.]], dtype=torch.float64)
2. 列表类型转为 tensor 类型
注意,该函数是直接把传入的列表变成张量,输入和输出的数值是不变的,输入参数的不是张量的shape
列表转为tensor类型: torch.tensor( 列表 )
# 将传入的列表变成tensor类型
data = torch.tensor([2.2, 3.3])
# tensor([2.2000, 3.3000])
data = torch.tensor([[2.2, 3.3], [4.4, 5.5]])
# tensor([[2.2000, 3.3000],
# [4.4000, 5.5000]])
3. 生成未初始化的 tensor
注意,该方法生成的数据非常不规则,使用时一定要把后续的数据写进来,如果直接使用,可能会报错nan
生成指定形状的张量,张量内的元素随机: torch.empty( 张量shape )
生成指定形状指定数据类型的张量,张量内的元素随机:
float类型: torch.FloatTensor( 张量shape )