最近在研究pytorch,安装的时候遇到不少坑,在此做下记录。
pytorch是torch移植到python上的版本,作为python3的第三方库,我们首先想到的就是利用pip来进行安装,但是直接使用
pip3 install pytorch (因为我使用的是python3,因此此处为pip3),会报如下错误
提示我们要去pytorch的官网进行下载,打开官网,可以按照安装方式(pip ,conda,source)和python版本,cuda版本来进行安装,由于本国特殊的网络国情,一般是打不开,或者是无法查看 run the command 之后的指令的。
在题主进行科学上网以后,得到了利用pip进行安装的相关的指令,(该指令为linux,pip,python3.6,none-cuda)
pip install http://download.pytorch.org/whl/cu75/torch-0.1.12.post2-cp35-cp35m-linux_x86_64.whl (linux下,即使cuda选择none,还是默认安装cuda75版本)
pip install torchvision
却发现torchvision已经不再支持pip,pytorch可以正常使用
看提示,建议我们选择miniconda进行安装,于是乎转战conda,由于我们学校提供了官方的镜像库,所以我选择直接安装了anaconda,如何在ubuntu上安装anaconda有很多文章可以参考,可以之前前往 https://www.continuum.io/downloads/ 进行安装。
利用conda进行安装的指令如下:
cuda7.5
conda install pytorch torchvision -c soumith
cuda8.0
conda install pytorch torchvision cuda80 -c soumith
然而!利用conda进行安装时会报condaHttpError错误,起初我认为是我国特殊的网络环境造成的,因此,将conda的源切换为我们学校的镜像源,仍然会报HttoError,但是安装别的第三方库可以成功。此时我是绝望的=。=这2个第三方包管理器太不靠谱,我在starkoverflow和github上找了一下,有很多人碰到了类似的问题,也有一些回答,但经过我的尝试,没有一个能解决我的问题。
最终解决方法----源码编译
预处理:
先安装yaml依赖
sudo apt install python-yaml python3-yaml
然后git clone pytorch 源码
源码包在github上的托管地址为
https://github.com/pytorch/vision
https://github.com/pytorch/pytorch
分别克隆2个包的源代码进行安装:
git clone https://github.com/pytorch/pytorch.git
git clone https://github.com/pytorch/vision.git
然后,cd到克隆的目录下
cd pytorch
sudo python3 setup.py install (记得一定要加sudo权限,否则安装过程可能报错)
会提示需要进行 git submodule update --init (主要作用是子模块的路径更新,这步必须要做)
git submodule update --init
sudo python3 setup.py install
安装pytorch 成功
cd vision
sudo python3 setup.py install
注意,若安装时提示找不到cmake,直接sudo apt install cmake 即可
安装完成之后,新开一个终端进入ipython3,查看是否安装成功(直接在python命令行查看也可)
之后就可以畅游pytorch和pytorchvision了
安装pytorch过程复现
然后执行sudo python3 setup.py install ,等待10min左右
然后发现,在安装Pytorch的终端import torch失败,新开一个终端是成功的,所以应该是原终端没有重载的原因,安装没有问题