PyTorch深度学习框架
简单介绍
PyTorch
是一个针对深度学习, 并且使用GPU
和CPU
来优化的tensor library
(张量库)。
学过Tensorflow
的人或许有话说,这些事情Tensorflow
也能做到的呀?那么pyTorch
到底有什么可以很快在深度学习爱好者中迅速发展起来的呢?其实相比较于Tensorflow
,两者还是存在不同之处——
PyTorch
更有利于研究人员、爱好者、小规模项目等快速搞出原型。而TensorFlow
更适合大规模部署,特别是需要跨平台和嵌入式部署时。PyTorch
本质上是Numpy
的替代者,而且支持GPU
、带有高级功能,可以用来搭建和训练深度神经网络。而TensorFlow
可以看成是一个嵌入Python
的编程语言。我们所写的TensorFlow
代码会被Python
编译成一张图,然后由TensorFlow
执行引擎运行。- 对于部署上,小规模服务器两个框架都可以用,但是对于移动端和嵌入式部署,
Tensorflow
会表现出更突出的优势。使用TensorFlow
,部署在Android
或iOS
平台时只需要很小的工作量,至少不必用Java
或者C++
重写模型的推断部分。对于高性能服务器端的部署,还有TensorFlow Serving
能用。除了性能之外,TensorFlow Serving
一个显著的优点是可以轻松的热插拔模型,而不会使服务失效。
PyTorch的环境配置
如果之前学习了Tensorflow的朋友们,应该对PyTorch的部署和安装会信手拈来。但是对于初学者来说,需要花一点时间进行摸索。
参考官网配置方法PyTorch官网可以进行安装。因为文件过大,下载过程中出现超时现象,使用清华镜像进行下载,速度比较块。当前操作系统Window10,其他系统可直接参考官网详细说明。
## 在安装之前需要确认cuda是否成功安装并在系统中使用
conda --version
## 下载相关文件,需要注意cuda和pyTorch的版本对应关系!!
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
## 安装
pip install pytorch cuda90 -c pytorch
pip install torchvision
如果通过镜像下载不下来,可以直接到**torch下载链接**进行下载,然后执行安装命令就可以。
# 离线安装相对应的版本
python install torchvision-0.3.0-py2.py3-none-any.whl
python install torch-1.1.0-cp36-cp36m-win_amd64.whl #python36,windowns 64
-
检测是否安装成功
## 检测是否安装成功 python >> import torch >> import torchvision >> torch.cuda.is_available() True #显示True表示安装成功,并且可用
PyTorch的张量的基本介绍和创建
张量简介
张量
在数学中,就是一个多维数组,它是标量、向量、矩阵的高维拓展。
标量
是一个0维张量,向量
是一个1维张量,矩阵
是一个2维张量,但是有些高维数值就无法用标量、向量、矩阵来表示了,比如彩色图片的像素点,其中还包括RGB通道的,那么此时就需要进行高维拓展——张量。
但是在PyTorch中张量不仅仅表示多维数组,也是自动求导的关键。其中Variable
是PyTorch-0.4.0
版本之前的一个数据类型,虽然在0.4.0版本
之后已经并入Tensor
中,但是Variable
这个数据类型还是需要了解的。这个数据类型和Tensorflow-1.0版本中的Variable还是有所不同之处。在Pytorch中,Variable主要是用于封装Tensor,进行自动求导
。
PyTorch的数据类型总共有9种数据类型,其中使用频率最高的是torch.float32
或者torch.float