参考:https://www.bilibili.com/video/BV1H54y117ZB?p=4
理解Tensor 张量
参考:https://zhuanlan.zhihu.com/p/48982978
- 张量是一个多维数组
- 目的是创造更高维度
(1)Tensor 和 Numpy都是矩阵,区别是前者可以在GPU上运行,后者只能在CPU上;
(2)Tensor和Numpy互相转化很方便,类型也比较兼容
(3)Tensor可以直接通过print显示数据类型,而Numpy不可以
现在将三维的张量用一个正方体来表示:
这样子可以进一步生成更高维的张量:
索引
>>> import torch
>>> x = torch.randn(5,3)
>>> x
tensor([[ 0.1148, -1.2228, -1.4797],
[ 0.3171, 0.6148, -2.0643],
[ 0.2356, 1.5902, -1.0012],
[-1.3349, 0.8611, 0.0101],
[ 1.1829, 0.0138, -0.1239]])
>>> x[:,1]
tensor([-1.2228, 0.6148, 1.5902, 0.8611, 0.0138])
>>> x[:2,0]
tensor([0.1148, 0.3171])
与Numpy协同操作
>>> b = x.numpy()
>>> b
array([[ 0.11476387, -1.2228328 , -1.4797103 ],
[ 0.3170539 , 0.61475927, -2.0643022 ],
[ 0.2356153 , 1.5901951 , -1.0012366 ],
[-1.3349295 , 0.8611195 , 0.01012497],
[ 1.182945 , 0.01377514, -0.12385403]], dtype=float32)
>>> import numpy as np
>>> a = np.ones(5)
>>> y = torch.from_numpy(a)
>>> y
tensor([1., 1., 1., 1., 1.], dtype=torch.float64)