pytorch创建张量方法

一、随机初始化
1.np.array -> tensor

a = np.array([1,2])
b = torch.from_numpy(a)
#[1 2] -> tensor([1, 2], dtype=torch.int32)

torch.tensor和torch.Tensor两种方法很容易混淆,下面我们重点区分两者。
2.list -> tensor
此时只能生成以list中的数值大小生成tensor

c = torch.Tensor([2,3])
d = torch.tensor([2,3])
#tensor([2., 3.])  tensor([2, 3]

3.生成固定size的tensor
torch.Tensor/torch.LongTensor等大写的皆可生成固定shap的tensor(值是随机初始化的),而torch.tensor无法生成固定size的tensor,只能以固定数值生成。

e = torch.Tensor(2, 1)
f = torch.LongTensor(2,1)
#tensor([[3.1040e-38],[1.9534e-42]])   tensor([[388440295611827034],[460498993321476484]])

4.生成固定数值的tensor
如2中所示,torch.Tensor/torch.tensor都可以,但是非常不推荐,因为torch.Tensor如果想生成固定数值,要加中括号[],所以很容易出现问题。具体可以看看下面的例子。

e = torch.Tensor(2)
f = torch.tensor(2)
# tensor([0., 0.])   tensor(2)

总结
生成固定size使用torch.Tensor()
生成固定数值使用torch.tensor()
二、限制初始化
1.torch.rand(3,3)
[0,1]均匀采样, 生成size(3,3)的tensor
2.torch.randint(1,10,[3,3])
[1,10)均匀采样,生成size(3,3)的tensor
3.torch.randn(3,3)
正态分布采样,生成size(3,3)的tensor
4.torch.full((2,3), 7)
全部赋值7的(2,3)的tensor
5.torch.arrange(1,10,2)
和python基本函数range一样的
6.torch.linspace(0,10,steps = 4)
0到10等分切成三份,返回四个端点
7.torch.ones/zeros/eye(3,3)
和np一样的
以上皆可加 _like(a),表示生成size和a一样的tensor

你可能感兴趣的:(深度学习)