步骤1:
输入下面地址:https://pytorch.org/get-started/locally/
步骤2:
选择自己想要的版本:
(pytorch build一般选择stable)
(选择自己的系统)
(选择用什么方式来下载:如果安装了anaconda,可以选择conda;一般选择pip) 注:不知为何原因,我用conda安装失败,在pip安装成功
步骤3:
run the command
https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html#sphx-glr-beginner-blitz-tensor-tutorial-py
他是一个基于Python的科学计算包,目标用户有两类
参考:https://www.jianshu.com/p/5ae644748f21/
标量(Scalar)是只有大小,没有方向的量,如1,2,3等 零维
向量(Vector)是有大小和方向的量,其实就是一串数字,如(1,2) 一维
矩阵(Matrix)是好几个向量拍成一排合并而成的一堆数字,如[1,2;3,4] 二维
张量就是按照任意维排列的一堆数字的推广。 标量、向量、矩阵都属于张量。除此之外,张量还可以是三维、四维、五维的等等。
张量类似于numpy中的ndarrays,不同在于张量可以使用GPU加速。
例子1
x = torch.Tensor(2,3) #构造一个2x3的矩阵,没初始化但仍然会有值
输出:
tensor([[0.0000, 0.0000, 0.0000],
[0.0000, 0.0000, 0.0000],
[0.0000, 0.0000, 0.0000],
[0.0000, 0.0000, 0.0000],
[0.0000, 0.0000, 0.0000]])
例子2
y = torch.rand(5,3,2) #构造一个5x3x2的张量,初始化为随机数
输出:
tensor([[[0.5264, 0.4299],
[0.1690, 0.5533],
[0.3089, 0.8002]],
[[0.6012, 0.8172],
[0.9650, 0.3159],
[0.6204, 0.4612]],
[[0.5796, 0.2908],
[0.2410, 0.4130],
[0.2657, 0.4400]],
[[0.3991, 0.1783],
[0.5380, 0.5921],
[0.1039, 0.5153]],
[[0.5698, 0.9856],
[0.2059, 0.5438],
[0.9882, 0.7355]]])
可以看出,5x3x2的张量y由5个3x2的矩阵构成,这符合了我们数学上的定义。
print(x.size())
输出:
torch.Size([5, 3])
注意:
torch.Size
实际上是一个元组,所以它支持元组相同的操作。
res = a+b
res = torch.add(a,b)
res = torch.Tensor(5,3)
torch.add(a,b,out=res)
b.add_(a) #运算结果覆盖掉b
tensor2array = torch_data.numpy()
torch_data = torch.from_numpy(np_data)
所有在CPU上的张量,除了字符张量,都支持在numpy之间转换。
# let us run this cell only if CUDA is available
if torch.cuda.is_available():
x = x.cuda()
y = y.cuda()
x + y