最近要学习深度学习,需要学习一些python中的包,首先看了一下Torch。
1.Torch是什么
用python进行机器学习时有科学计算包Numpy,可用于处理N维的大型矩阵,实现矩阵之间的运算,将array放入CPU中加速运算。Torch就相当于神经网络中的Numpy,将Tensor(张量)放入GPU中进行加速运算。这里介绍一下张量(tensor)
张量(tensor)
某些情况下,需要讨论超过两维的数组。若一个数组中的元素分布在若干维坐标的规则网络中,可称为张量。张量可使用一个大写字母如A进行表示,A中坐标为(i,j,k)记作Ai,j,k
2.Torch在python中的安装
在pytorch下载中输入操作系统与python版本号,会生成特定的指导安装的命令行,如图:
这边我在控制台安装时报错,出现了以下错误:
在这篇博客上找到了解决方案(其中添加系统环境变量的方法详见链接)
3.Tensor的运算
加法:
有多种方法:
a=torch.rand(5,3)
b=torch.rand(5,3)
1.直接相加:
a+b
2.调用add:
torch.add(a,b)
3.存储运算结果到一个变量中:
result=torch.Tensor(5,3)
torch.add(a,b,out=result)
4.运算结果覆盖
b.add_(a) #b被覆盖
Tensor的截取,切片操作与numpy类似。
其他Tensor操作可查看该网址:https://pytorch.org/docs/stable/torch.html
4.Torch中Tensor与Numpy中Array相互转换
1.tensor->array
b = a.numpy() #a为tensor
其中,a与b使用的是同一块内存,b随着a的改变而改变,但b的改变与a无关。
2.array->tensor
b = torch.from_numpy(a) #a为numpy的array
其中,a与b使用的是同一块内存,b随着a的改变而改变,但b的改变与a无关。
5.使用GPU进行tensor运算
若有nvidia的显卡并支持cuda(如GTX 1080),可以使用显卡GPU进行tensor的运算
torch.cuda.is_available() #是否支持cuda
使用示例:
x = x.cuda()
y = y.cuda()
x.add_(y) #x,y都是tensor,使用cuda函数后,x与y使用GPU进行运算
参考文章:https://www.jianshu.com/p/5ae644748f21