本文共 1680 字,大约阅读时间需要 5 分钟。
步骤1:
输入下面地址:步骤2:
选择自己想要的版本: (pytorch build一般选择stable) (选择自己的系统) (选择用什么方式来下载:如果安装了anaconda,可以选择conda;一般选择pip) 注:不知为何原因,我用conda安装失败,在pip安装成功步骤3:
run the command他是一个基于Python的科学计算包,目标用户有两类
参考:
标量(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 availableif torch.cuda.is_available(): x = x.cuda() y = y.cuda() x + y