创建Tensor的几种方式
创建Tensor
创建一个5行3列未初始化的tensor
1 2
| x = torch.empty(5, 3) print(x)
|
输出:
1 2 3 4 5
| tensor([[1.0194e-38, 1.0469e-38, 1.0010e-38], [8.9081e-39, 8.9082e-39, 5.9694e-39], [8.9082e-39, 1.0194e-38, 9.1837e-39], [4.6837e-39, 9.2755e-39, 1.0837e-38], [8.4490e-39, 1.1112e-38, 1.0194e-38]])
|
创建一个5行3列随机初始化的tensor:
1 2
| x = torch.rand(5, 3) print(x)
|
1 2 3 4 5
| tensor([[0.5911, 0.9191, 0.9826], [0.4801, 0.1648, 0.8578], [0.9937, 0.8051, 0.6952], [0.9682, 0.1975, 0.1151], [0.2434, 0.2917, 0.7866]])
|
创建Tensor还可以指定数据类型:创建一个5行3列的类型为long的全0数据
1 2
| x = torch.zeros(5, 3, dtype=torch.long) print(x)
|
1 2 3 4 5
| tensor([[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]])
|
直接输入数据进行创建tensor:
1 2
| x = torch.tensor([1,2,3]) print(x)
|
根据现有的tensor创建新的tensor:
1 2
| x = torch.randn_like(x,dtype = torch.float64) x
|
1 2 3 4 5
| tensor([[-0.6669, 0.5308, 1.5981], [ 1.2061, 0.6624, -0.4535], [-0.5667, -0.8755, -2.1078], [-3.0560, -0.6035, 0.7990], [-0.3979, -1.3582, -0.8427]], dtype=torch.float64)
|
2根据numpy创建新的tensor:
1 2 3 4
| a = torch.ones(5,3) b = a.numpy() b
|
1 2 3 4 5
| array([[1., 1., 1.], [1., 1., 1.], [1., 1., 1.], [1., 1., 1.], [1., 1., 1.]], dtype=float32)
|
1 2 3
| x = torch.from_numpy(b) x
|
1 2 3 4 5
| tensor([[1., 1., 1.], [1., 1., 1.], [1., 1., 1.], [1., 1., 1.], [1., 1., 1.]])
|
不过要注意的是:无论是array转化为tensor,还是tensor转化为array,他们都是和原来的数据共享内存的,例如:
1 2 3 4 5 6 7 8 9 10 11
| [[2. 2. 2.] [2. 2. 2.] [2. 2. 2.] [2. 2. 2.] [2. 2. 2.]] tensor([[2., 2., 2.], [2., 2., 2.], [2., 2., 2.], [2., 2., 2.], [2., 2., 2.]])
|
更多详情请查看官方文档
喜欢文章可以点赞收藏,欢迎关注,如有错误请指正!