1、numpy数组中转换而来,数值保持不变
a = np.array([2, 3.3])
torch.from_numpy(a)
a = np.ones([2, 3])
torch.from_numpy(a)
2、通常小写的tensor传入List, FloatTensor传入shape
torch.tensor([2., 3.2])
torch.tensor([[2., 3.2], [2., 3.2]])
torch.FloatTensor(2)
直接生成一个随机的数据
- Torch.empty()
- Torch.FloatTensor(d1, d2, d3)
3、随机初始化
torch.rand(3, 3) # 生成[0,1]之间的随机数字
# *_like()函数
a = torch.rand(3, 3)
torch.rand_like(a) # 生成一个和a同shape的函数
torch.randint(1, 10, [3, 3]) # 第一个参数是取值极小值,第二个极大值[1, 10),最后一个参数是形状
torch.randn(3, 3) # 正态分布,均值为0 方差为1
# 自定义方差 均值
torch.normal(mean=torch.full([10], 0), std=torch.arange(1, 0, -0.1))
# 将tensor赋值为一个值
torch.full([2, 3], 7) # tensor([[7., 7., 7.],
# [7., 7., 7.]])
torch.full([], 7) # tensor(7.)
# 生成等差数列
torch.arange(0, 10) # 生成[0, 10) tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
torch.arange(0, 10, 2) # tensor([0, 2, 4, 6, 8])
torch.linspace(0, 10, step=4) # 将[0, 10]等分切割成4个数
#tensor([0.0000, 3.3333, 6.6667, 10.0000])
torch.logspace(0, -1, step=10)
# tensor([1.0000, 0.7743, 0.5995, 0.4642, 0.3594, 0.2783, 0.2154, 0.1668, 0.1292, 0.1000]) [0, -1]为指数,可以使用base设置底数
一些其他的生成:
生成全为1的张量torch.ones(3, 3)
生成全为零的张量torch.zeros(3, 3)
生成对角线为1的张量torch.eye(3, 3)
如果形状不是方阵,将方阵变为单位阵,其他部分为0。
1381

被折叠的 条评论
为什么被折叠?



