1 从numpy导入数据 torch.from_numpy(a)
import torch
import torchvision
import numpy as np
a = np.array([2, 3.3])
a = torch.from_numpy(a)
print(a)
# out: tensor([2.0000,3.0000], dtype=torch.float64)
a = np.ones([2, 3])
a = torch.from_numpy(a)
print(a)
# out: tensor([[1., 1., 1.],
[1., 1., 1.],dtype=torch.float64)
2 从list导入数据
传入数据用tensor,传入形状用FloatTensor
# 2 import from list
b = torch.tensor([2., 3.2])
print(b)
# out:tensor([2.0000, 3.2000])
# 传入数据用tensor,传入形状用FloatTensor
# 小写的tensor接受数据,
# 大写的Tensor()或者FloatTensor()接受的是shape,数据的维度
b = torch.FloatTensor([2., 3.2])
print(b)
# out:tensor([2.0000, 3.2000])
# 少用,容易混淆:也可以接受数据,在列表里面,
b = torch.FloatTensor(2, 3) # 两行三列
print(b)
# out:tensor([[1.0790e-43, 0.0000e+00, 1.4013e-45],
# [0.0000e+00, 1.4013e-45, 0.0000e+00]])
b = torch.tensor([[2., 3.2], [1., 22.3]])
print(b)
# tensor([[ 2.0000, 3.2000],
# [ 1.0000, 22.3000]])
3 未定义的初始化 unintialized
1 未初始化的
torch.empty,
torch.FloatTensor
未初始化,最终需要把数据写进去不然后面会出问题
2 设置默认
Tensor代表着默认类型,
pytorch默认为FloatTensor,
tensor([1.1])也会认为是FloatTensor
除非我做了设置
其他类型还有IntTensor, DoubleTensor
print(torch.tensor([1.2, 3]).type())
torch.set_default_tensor_type(torch.DoubleTensor)
print(torch.tensor([1.2, 3]).type())
# out:
torch.FloatTensor
torch.DoubleTensor
4 rand /rand_like , randint
1 torch.rand函数:
每个元素, 随机均匀分布在[0, 1]
torch.rand_like()
2 使用自定义空间 torch.randint (min, max, [shape])
随机取值范围:[min, max)
d = torch.rand([3, 3])
print(d)
# tensor([[0.2792, 0.3550, 0.2530],
# [0.8100, 0.7595, 0.4843],
# [0.6003, 0.5629, 0.3204]])
d = torch.rand_like(d)
print(d)
# tensor([[0.4093, 0.1789, 0.5550],
# [0.8076, 0.5962, 0.4770],
# [0.5378, 0.9922, 0.7233]])
d = torch.randint(1, 10, [3, 3])
print(d)
# tensor([[3, 3, 3],
# [2, 7, 7],
# [3, 3, 6]])
5 正态分布的随机分布torch.randn([3, 3])