手记

我为什么喜欢PyTorch

大家好,我是一名独角兽公司的算法研究员,处理深度学习相关项目已有三年经验,接下来会在平台上给大家分享一些深度学习,计算机视觉和统计机器学习的心得体会,当然了内推简历一定是收的。
这是第一篇文章,不想说太多学术的东西,和大家简单谈一谈深度学习框架的选择,这几年在辅导的过程中,见过了太多同学在无意义的事情上浪费了太多精力,而如果第一个demo始终无法顺利跑动,这无疑是非常fraustrated的。

1. 操作系统

这个是最好说明的,使用Ubuntu或是OS系统,在笔者看来Windows本身的设计逻辑使得它非常不适合进行希望得到快速反馈的行为。而Unix-base的模型可以对输入进行快速应答,而且Windows的注册表文件实在是非常反人类。考虑到Mac的高昂成本,那么笔者实际上是在推荐Ubuntu,win本下载vmware使用Ubuntu虚拟机即可,如有需要可在评论提出,会给出Ubuntu的相关安装和配置说明。

2. 深度学习框架

笔者接触过不少的深度学习框架,也就是说,放弃过很多框架。在工作中踩的坑,有些现在回想起来,依然没法解决。

最早使用的是Caffe,如果是有过一些工作经验的AI从业者,一定对这个名字记忆犹新,早期几乎所有的classic模型都是caffe-base的,而且它的可读性很好,在进行了一定的基础学习后,可以轻松理解模型。但是caffe最大的缺点在于,它的安装较其他的框架而言更加繁琐,配置起来很麻烦,甚至出现过公司里所有做object detection的实习生都要使用同一台服务器跑模型,因为他们自己的电脑上都有着各种各样的错误提示,而且mentor们也看不出来问题。

从使用的广度来看,谷歌公司给出的TensorFlow在这几年独占鳌头,它使用的静态图是一种很有趣的思路,我们知道,在进行一系列的运算时一定有办法可以将步骤和计算损耗进行简化。

现在我们手上有一个长度为n的向量,记为(x1,x2,...xn)(x_1, x_2, ...x_n)(x1,x2,...xn)。现在在某个模型中需要对模型进行缩放之后的加和,巧合的是缩放系数是1n\frac{1}{n}n1。那么如果需要对模型分别缩放再逐个求和,需要的计算次数是2n2n2n,而如果我们将其先求和再缩放,即∑xin=1n∑xi\sum \frac{x_i}{n}=\frac{1}{n}\sum x_inxi=n1xi,计算次数变为n+1n+1n+1,减少了接近一半的计算量。在进行了这样的优化之后,需要对模型进行对应的变换,这在第一次运算时会损耗一定的时间,但是之后的每一次操作都会从中受益。当然这是个小学级别的例子,实际运用不会是这么简单的情况。
Keras本质上就是TensorFlow的一个高级封装,所以TensorFlow有的缺点它都有,但是封装保证了它的便捷性,只需要不多的几行就能完成模型的搭建,不过,灵活性较差,工业领域一般没人用这个。
那么,终于可以给出My Favorite了!

PyTorch是Python+Torch的结果,其中Torch和numpy十分类似,所以这也是data scientist转行AI的首选框架。它以Python为主,与TensorFlow相比,对于GPU的接口更加友好,实乃学习工作必备之良药。
相较于TensorFlow而言,PyTorch是一个动态的框架,不需要每次操作时使用相同的计算图,这也就使得它有着极强的灵活性

先给出官网地址
PyTorch猛戳这里
不过对于有一定基础的同学,只要在电脑上安装了anaconda,就可以直接通过

pip install torch

即可完成PyTorch的安装工作,除此之外FAIR的大学霸们还贴心的帮我们完成了很多经典模型的搭建,都存在torchvision库里了,通过

pip install torchvision

即可完成。深度学习很多时候都像是搭积木,通过torchvision可以快速将已有的模型作为模块添加到整体中。

如果使用OS系统进行具有CUDA支持的PyTorch安装,则需要如下指令:

export CMAKE_PREFIX_PATH=[anaconda root directory]
conda install numpy pyyaml mkl mkl-include setuptools cmake cffi typing

接下来进行源码安装

git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
MACOSX_DEPLOYMENT_TARGET=10.9 CC=clang CXX=clang++ python setup.py install

接下来就尽情享受PyTorch的快乐吧

打完收工

1人推荐
随时随地看视频
慕课网APP