为了更好地支持深度学习算法的研究与落地,各大公司和研究机构陆续推出了多种深度学习框架,除了PyTorch之外,还有几种知名的框架,如TensorFlow、MXNet、Keras、Caffe和Theano等,广泛应用于计算机视觉、自然语言处理、语音识别等领域。
为什么选择PyTorch
选择PyTorch来实现物体检测算法,主要原因有4点:
• 简洁优雅:PyTorch是一个十分Pythonic的框架,代码风格与普通的Python代码很像,甚至可以看做是带有GPU优化的NumPy模块,这使得使用者很容易理解模型的框架与逻辑。此外,PyTorch是一个动态图框架,拥有自动求导机制,对神经网络有着尽量少的概念抽象,这使得使用者更容易调试、了解模型的每一步到底发生了什么,而不至于是一个黑箱。
• 易上手:PyTorch与Python一样,追求用户的使用体验,所有的接口都十分易用,对于使用者极为友好。与Keras不同的是,在接口易用的同时,PyTorch很难得地保留了灵活性,使用者可以利用PyTorch自由地实现自己的算法。另外,PyTorch的文档简洁又精髓,建议初学者可以通读一遍。
• 速度快:PyTorch在追求简洁易用的同时,在模型的速度表现上也极为出色,相比TensorFlow等框架,很多模型在PyTorch上的实现可能会更快。这一点也使得学术界有大量PyTorch的忠实用户,因为使用PyTorch既可以快速实现自己的想法,又能够保证优秀的速度性能。
• 发展趋势:PyTorch在问世的两年多时间里,发展趋势十分迅猛,fast.ai、NVIDIA等知名公司也选择使用PyTorch作为深度学习框架。PyTorch背后是Facebook人工智能研究院,有这一顶级AI机构强有力的支持,生态完备,尤其是在Caffe 2并入PyTorch之后,PyTorch未来的发展值得期待。
安装方法
PyTorch目前支持Ubuntu、Mac OS、Windows等多个系统,
基于Ubuntu系统进行讲解。PyTorch官网中提供了pip、Conda、源码等多种安装方法,由于源码安装较为复杂,通常情况下使用不到,在此只介绍pip与Conda两种安装方法。
物体检测算法模型通常较大,因此我们需要使用带有GPU加速版本的PyTorch。在安装PyTorch之前,你需要有一台带有GPU的机器,并从NVIDIA官网下载安装对应的显卡驱动,在终端中输入以下命令可以证明驱动已装好,并显示GPU的内存、使用情况等信息:
nvidia-smi
在安装完显卡驱动后,我们还需要安装CUDA(Compute Unified Device Architecture)。CUDA是NVIDIA推出的通用并行计算架构,可以使类似于PyTorch之类的深度学习框架调用GPU来解决复杂的计算问题。
为了实现更高效的GPU并行计算,通常我们还需要安装cuDNN库。cuDNN库是由NVIDIA开发的专用于深度神经网络的GPU加速库。由于CUDA与cuDNN的安装较为简单,在此就介绍了。
1.pip安装
pip是一个通用的Python包管理工具,可以便捷地实现Python包的查找、下载、安装与卸载。使用pip安装PyTorch的方法可以参考官网教程,我们以Python 3.6、CUDA 9.0、PyTorch 0.4.0为例,使用下面的指令即可完成PyTorch安装:
pip3 install torch==0.4.0
安装后,在终端中输入python3,再输入以下指令:
>> import torch>> torch.cuda.is_available() #判断当前GPU是否可用True
如果没有报错,则表明PyTorch安装成功。
2.Conda安装
Conda是一个开源的软件管理包系统和环境管理系统,可以安装多个版本的软件包,并在其间自由切换。相比于pip,Conda功能更为强大,可以提供多个Python环境,并且解决包依赖的能力更强。我们可以通过安装Anaconda来使用Conda,安装方式可以参考官网教程,在此不再展开介绍。
安装好Conda后,可以使用如下指令安装PyTorch。
conda install pytorch=0.4.0 cuda90 -c pytorch
注意:在使用pip或者Conda安装软件包时,如果下载速度较慢,可以考虑将pip或者Conda的源更换为国内的源,这样速度会更快。镜像地址可以网上查。

