Pytorch安装 

1)先是Anaconda安装配置,参照原来一篇博客

2)Git Clone源代码


进入虚拟环境后,采用conda安装:conda install pytorch torchvision -c soumith

如果不成功则:



那么最后还有一个选择,install from source,果断在GitHub上找到PyTorch的repository:
https://github.com/pytorch/pytorch
*
接下来需要做的就是将PyTorch最新的源代码取到本地:
gitclone https://github.com/pytorch/pytorch.git


离线安装:

http://pytorch.org/      选择合适版本,例:

http://download.pytorch.org/whl/cu90/torch-0.3.1-cp36-cp36m-linux_x86_64.whl 

下载下来再:pip install torch-0.3.1-cp36-cp36m-linux_x86_64.whl 
3)测试 
进入python模式下,看能否导入torch成功:$ python > import torch
4)Install from Source



根据PyTorch源代码的readme中的安装步骤,我们要先配置环境变量CMAKE_PREFIX_PATH,打开~/.bashrc (vi ~/.bashrc
)输入:
export CMAKE_PREFIX_PATH=[anaconda root directory]
* 1
其中“[anaconda root directory]”指的是Anaconda的安装文件夹下的bin文件夹。在我的Ubuntu12.04上,安装路径如下:
export CMAKE_PREFIX_PATH=/home/data/liangxiaoyun/anaconda2/bin
* 1
另外由于我的GPU不支持CUDA,只能安装CPU部分,所以还需要设置环境变量NO_CUDA为1:
export NO_CUDA=1
* 1
在完成上述两个环境变量配置后需要记得这一步,使环境变量生效:
source ~/.bashrc
* 1
然后,我们需要安装PyTorch的依赖库:
conda install numpy pyyaml mkl setuptools cmake gcc cffi
* 1
最后,一切准备就绪!马上进入愉快的编译安装过程:
python setup.py install
* 1
大概十分钟左右,提示安装成功,马上进入Python试一试:
Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 2 2016, 17:53:06) [GCC 4.4
.7 20120313 (Red Hat 4.4.7-1)] on linux Type "help", "copyright", "credits" or
"license" for more information. >>> import torch >>> x = torch.rand(5,3) >>>
print(x)0.0592 0.4292 0.5637 0.6365 0.2012 0.5649 0.2594 0.8850 0.5157 0.0689
0.4914 0.8834 0.3978 0.7032 0.6879 [torch.FloatTensor of size 5x3]
可以看到import torch可以成功,表示PyTorch的安装完成!仔细一看PyTorch里面的数据操作和Matlab挺像的,方便上手。



2.TorchVision安装


TorchVision为PyTorch提供视频和图像方面的支持,包括数据库和模型等。安装好了之后可以很方便地导入很多图像数据库,比如cifar-10。下载地址为:
https://pypi.python.org/pypi/torchvision/0.1.8
* 1
我们点击Download下载whl文件,然后在Anaconda的环境中启动pip进行安装:
pip install torchvision-0.1.8-py2.py3-none-any.whl
* 1
以上方法出错,则:



Anaconda:
conda install torchvision -c pytorch
至此,TorchVision就已经安装成功!

<>3. 小试牛刀

PyTorch官网的入门教程中有一个有关图像分类的,我们尝试着完成这个教程:
http://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html
* 1
在页面的最下面有代码的下载链接,选择下载“cifar10_tutorial.py”,直接在终端中运行程序:
python cifar10_tutorial.py
* 1
出现以下提示,正在下载cifar10数据库。
Downloading http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to
./data/cifar-10-python.tar.gz
* 1
等了很久还是没下载好,我选择用其他下载工具譬如迅雷,直接下载cifar-10-python.tar.gz,大小接近180M,怪不得这么久。

然后在data文件夹里,对数据库解压:
tar -xzvf cifar-10-python.tar.gz
解压好了再选择运行代码cifar10_tutorial.py,提示数据验证通过:
Files already downloaded and verified Files already downloaded and verified
接下来就是train和test的输出:
[1, 2000] loss: 2.223 [1, 4000] loss: 1.853 [1, 6000] loss: 1.694 [1, 8000]
loss:1.592 [1, 10000] loss: 1.521 [1, 12000] loss: 1.472 [2, 2000] loss: 1.392 [
2, 4000] loss: 1.359 [2, 6000] loss: 1.335 [2, 8000] loss: 1.313 [2, 10000]
loss:1.316 [2, 12000] loss: 1.276 Finished Training GroundTruth: cat ship ship
plane Predicted: frog ship ship ship Accuracyof the network on the 10000 test
images:53 % Accuracy of plane : 32 % Accuracy of car : 75 % Accuracy of bird :
51 % Accuracy of cat : 19 % Accuracy of deer : 49 % Accuracy of dog : 28 %
Accuracyof frog : 70 % Accuracy of horse : 68 % Accuracy of ship : 80 % Accuracy
of truck : 56 %
结果和PyTorch的官方tutorial差不多,运行成功!


至此,PyTorch的安装、环境搭建以及安装后的代码测试就全部完成。按照这个步骤,相信你也可以很快开始PyTorch的开发!


入门建议
第一步 github的 tutorials
<https://link.zhihu.com/?target=http%3A//pytorch.org/tutorials/>
尤其是那个60分钟的入门。只能说比tensorflow简单许多. 另外jcjohnson 的Simple examples to introduce
PyTorch
<https://link.zhihu.com/?target=https%3A//github.com/jcjohnson/pytorch-examples>
也不错第二步 example 参考 pytorch/examples
<https://link.zhihu.com/?target=https%3A//github.com/pytorch/examples>
实现一个最简单的例子(比如训练mnist )。第三步 通读doc PyTorch doc
<https://link.zhihu.com/?target=http%3A//pytorch.org/docs/> 尤其是autograd
<https://link.zhihu.com/?target=http%3A//pytorch.org/docs/notes/autograd.html>
的机制,和nn.module
<https://link.zhihu.com/?target=http%3A//pytorch.org/docs/nn.html%23torch.nn.Module>
,optim <https://link.zhihu.com/?target=http%3A//pytorch.org/docs/optim.html> 等
相关内容。文档现在已经很完善,而且绝大部分文档都是作者亲自写的,质量很高。第四步 论坛讨论 PyTorch Forums
<https://link.zhihu.com/?target=https%3A//discuss.pytorch.org/>
。论坛很活跃,而且质量很高,pytorch的维护者(作者)回帖很及时的。每天刷一刷帖可以少走很多弯路,避开许多陷阱,消除很多思维惯性.尤其看看那些阅读量高的贴,刷帖能从作者那里学会如何写出bug-free
clean and elegant 的代码。如果自己遇到问题可以先搜索一下,一般都能找到解决方案,找不到的话大胆提问,大家都很热心的。第五步 阅读源代码
fork
pytorch,pytorch-vision等。相比其他框架,pytorch代码量不大,而且抽象层次没有那么多,很容易读懂的。通过阅读代码可以了解函数和类的机制,此外它的很多函数,模型,模块的实现方法都如教科书般经典。还可以关注官方仓库的issue/pull
request, 了解pytorch开发进展,以及避坑。还可以加入 slack群组讨论,e-mail订阅等总之 pytorch入门很简单,代码很优雅,是最
Pythonic
<https://link.zhihu.com/?target=http%3A//www.baidu.com/link%3Furl%3DZ0NtRMChanjECZY1UVxGh5lD6gJmKhDc18QvWDF4qqCbutWtgAaLVH0jfEyvwpvT>
的框架. 欢迎入坑。
推销一个教程:chenyuntc/pytorch-book
<https://link.zhihu.com/?target=http%3A//github.com/chenyuntc/pytorch-book>
用notebook写的教程,里面还有很多有趣的例子,比如用GAN生成动漫头像,用CharRNN写唐诗,类Prisma的滤镜(风格迁移)和图像描述等

1. 关于如何照着example实现简单的例子, 做法是认真看几遍example的实现代码.理解透,然后自己从头写, 实现相同的模型,
实在卡住了写不下去可以看一下, 但是绝对不能copy and paste. 当你实现了一个简单的例子(比如tutorial 的 mnist)
基本上对pytorch的主要内容都有了大概的了解. 写的时候会涉及 dataset,nn.module, optim, loss等许多模块, 也算是加深理解.
用pytorch 写的第一个模型是DCGAN , 用ipython notebook写的GitHub-chenyuntc/pytorch-GAN
<https://link.zhihu.com/?target=https%3A//github.com/chenyuntc/pytorch-GAN>,
然后看到了新出的大作WGAN, 在DCGAN上做了一点点修改, 就实现了WGAN, 是入门最快的一次.2. 论坛的很多贴都是你以后可能遇到的问题 比如
如何FinetuneHow to perform finetuning in Pytorch?
<https://link.zhihu.com/?target=https%3A//discuss.pytorch.org/t/how-to-perform-finetuning-in-pytorch/419>
如何从预训练好的网络中的某一层提取特征:How to extract features of an image from a trained model
<https://link.zhihu.com/?target=https%3A//discuss.pytorch.org/t/how-to-extract-features-of-an-image-from-a-trained-model/119/32>
论坛贴比较少, 我觉得其中一个原因是很多问题都不是问题,比如如何共享参数, 这个在tensorflow中有专门的一章讲解,
但是用pytorch写可能都不会意识到有这个问题---直接用就是了How to create model with sharing weight?
<https://link.zhihu.com/?target=https%3A//discuss.pytorch.org/t/how-to-create-model-with-sharing-weight/398/2>
比如如何用在模型运行时实现条件判断--直接用if. 如何查看中间结果?--直接print. 如何修改参数--直接赋值.
相比于tensorflow,pytorch更接近python的写法.3. 关于如何阅读源代码: fork, clone ,然后用vscode打开---
大概浏览一下, 知道类, 模块之间的关系. 然后重点阅读一些经典函数的代码, 按ctrl单击调用的函数在不同文件中跳转, 了解函数调用关系.
此外torch-vision中很多模型如ResNet的实现也很简洁.4. 一些其它的例子:
* 50行实现GAN devnag/pytorch
<https://link.zhihu.com/?target=https%3A//github.com/devnag/pytorch-generative-adversarial-networks>
* pytorch 资源合集 The Incredible PyTorch
<https://link.zhihu.com/?target=https%3A//github.com/ritchieng/the-incredible-pytorch>
* 加强版pytorch tutorial侧重NLP spro/practical-pytorch
<https://link.zhihu.com/?target=https%3A//github.com/spro/practical-pytorch>
* 利用LSTM学习梯度下降法等优化方法:ikostrikov/pytorch-meta-optimizer: A PyTorch
implementation of Learning to learn by gradient descent by gradient descent
<https://link.zhihu.com/?target=https%3A//github.com/ikostrikov/pytorch-meta-optimizer>
* WGAN的官方实现martinarjovsky/WassersteinGAN
<https://link.zhihu.com/?target=https%3A//github.com/martinarjovsky/WassersteinGAN>
安利@莫烦 <https://www.zhihu.com/people/a3e80b702265d6149bf9e559d523c88f>
的PyTorch教程(视频+代码)详情见专栏文章等什么, 赶快抱紧 PyTorch 的大腿!
<https://zhuanlan.zhihu.com/p/26670032>

 

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信