PyTorch安装、使用、学习指南

Abstract:PyTorch是一个python优先的非常优秀的深度学习框架,本文是个人总结的关于如何安装、使用和学习PyTorch的指南。


1.PYTORCH介绍

Torch是一个科学计算框架,广泛支持机器学习算法,将GPU放在第一位。由于使用简单快速的脚本语言LuaJIT以及底层的C / CUDA实现,因此易于使用和高效。

核心功能:

  1. 一个强大的N维数组

  2. 许多例行索引,切片,转置,...

  3. 通过LuaJIT向C提供了惊人的界面

  4. 线性代数程序

  5. 神经网络和能量模型

  6. 数字优化例程

  7. 快速高效的GPU支持

  8. 可嵌入,具有iOS,Android和FPGA后端的端口

Pytorch

  • python优先的深度学习框架,使用CPU和GPU优化的深度学习张量库,能在强大GPU加速基础上实现张量和动态神经网络

  • PyTorch 和 TensorFlow、MXNet、Caffe2 一样,是非常底层的框架;也正如 TensorFlow 是谷歌官方框架,MXNet 是亚马逊官方框架,背后支持 PyTorch 的则是 Facebook

  • python软件包:提供了两种高层面的功能:

    • 1.使用强大的 GPU 加速的 Tensor 计算(类似 numpy)

    • 2.构建于基于 tape 的 autograd 系统的深度神经网络。通常,人们使用 PyTorch 的原因通常有二:1. 作为 numpy 的替代,以便使用强大的 GPU;2. 将其作为一个能提供最大的灵活性和速度的深度学习研究平台

  • 社区驱动的项目:由经验丰富的工程师和研究者组成的 Torch7 团队开发

  • 特点:快速成形、代码可读和支持最广泛的深度学习模型

2.安装步骤

1.在终端里运行以下代码:

  sudo pip install http://download.pytorch.org/whl/torch-0.3.0.post4-cp27-none-macosx_10_6_x86_64.whl 
  
  sudo pip install torchvision 

其他系统参见PyTorch官网上,在官网上找到下面图片的对应处,勾选好系统、包管理工具、python版本、是否支持CUDA,再在终端运行其下出现的代码即可安装。

安装PyTorch会安装2个模块,一个是torch,是主模块,用来搭建神经网络;另一个是torchversion,是辅模块,有数据库和一些已经训练好的神经网络(如VGG、AlexNet、ResNet)。

2.测试安装是否成功:在python编译器里输入以下代码

  import torch

3.学习步骤

Step1:文档 60分钟的入门tutorials + jcjohnsonSimple examples to introduce PyTorch

Step2:example 参考 pytorch/examples 实现一个最简单的例子(比如训练mnist )

Step3:通读doc PyTorch doc 尤其是autograd的机制,和nn.module ,optim 等相关内容。文档现在已经很完善,而且绝大部分文档都是作者亲自写的,质量很高

Step4:论坛讨论 PyTorch Forums 。论坛很活跃,而且质量很高,pytorch的维护者(作者)回帖很及时的。每天刷一刷帖可以少走很多弯路,避开许多陷阱,消除很多思维惯性.尤其看看那些阅读量高的贴,刷帖能从作者那里学会如何写出bug-free clean and elegant 的代码。如果自己遇到问题可以先搜索一下,一般都能找到解决方案,找不到的话大胆提问,大家都很热心的。

Step5:阅读源代码 fork pytorch,pytorch-vision等。相比其他框架,pytorch代码量不大,而且抽象层次没有那么多,很容易读懂的。通过阅读代码可以了解函数和类的机制,此外它的很多函数,模型,模块的实现方法都如教科书般经典。还可以关注官方仓库的issue/pull request, 了解pytorch开发进展,以及避坑。

Others Tipps:

  • 还可以加入 slack群组讨论,e-mail订阅

  • chenyuntc/pytorch-book 写的教程,里面还有很多有趣的例子,比如用GAN生成动漫头像,用CharRNN写唐诗,类Prisma的滤镜(风格迁移)和图像描述等

  • 关于如何照着example实现简单的例子, 我的做法是认真看几遍example的实现代码.理解透,然后自己从头写, 实现相同的模型, 实在卡住了写不下去可以看一下, 但是绝对不能copy and paste. 当你实现了一个简单的例子(比如tutorial 的 mnist) 基本上对pytorch的主要内容都有了大概的了解. 写的时候会涉及 dataset,nn.module, optim, loss等许多模块, 也算是加深理解.


  • 一些其它的例子:

    • 50行实现GAN devnag/pytorch

    • pytorch 资源合集 The Incredible PyTorch

    • 加强版pytorch tutorial侧重NLP spro/practical-pytorch

    • 利用LSTM学习梯度下降法等优化方法:ikostrikov/pytorch-meta-optimizer: A PyTorch implementation of Learning to learn by gradient descent by gradient descent

    • WGAN的官方实现 martinarjovsky/WassersteinGAN

btw:欢迎关注 ~

Github: https://github.com/ScarlettYellow

个人博客:https://scarletthuang.cn/


你可能感兴趣的:(人工智能,机器学习)