Pytorch 安装,pip一直出错,好吧,我选择conda。官方给的简单安装的方式我试了都有问题,然后就采用源码安装。刚开始源码安装用的是ubuntu12,总是出现以下错误:
error: command 'gcc' failed with exit status 1
关于这个错误,我找了半天,没找到解决的方法。
然后我重新安装了ubuntu16来源码安装,没办法,一切为了学习。
首先安装Anaconda,我用的python2.7的,所以安装的是Anaconda2
1、bash Anaconda2-5.0.1-Linux-x86_64.sh
2、source ~/.bashrc
源码安装:
export CMAKE_PREFIX_PATH=/home/xiaofeng/anaconda2/bin (这个文件夹是我的anaconda的bin文件的位置,每个人的都不一样)
export NO_CUDA=1(我安装的是CPU版的)
conda install numpy pyyaml mkl setuptools cmake cffi(安装依赖)
如果出现:CondaIOError: Missing write permissions in: /home/xiaofeng/anaconda2
根据提示运行:conda create -n my_root --clone="/home/xiaofeng/anaconda2"
然后根据这个提示:
#To activate this environment, use:
# > source activate my_root
#
# To deactivate an active environment, use:
# > source deactivate
运行ource activate my_root
然后再运行conda install numpy pyyaml mkl setuptools cmake cffi
clone --recursive https://github.com/pytorch/pytorch (下载源码)
cd ./pytorch (进入下载下来的文件夹)
python setup.py install (执行安装,不要用sudo安装,如果提示文件夹没有权限,通过chmod解决。)
安装完成后 import torch 试一下,如果可以导入,就说明完成了。
我import torch的时候出现问题,导入不成功
ImportError: No module named _C
这个问题的解决方法:不要在刚才pytorch的源码文件下面进行导入,换个文件夹。
这里有提到https://github.com/pytorch/pytorch/issues/7
我还碰到一种情况,明明安装成功了,在文件夹/usr/local/lib/python2.7/dist-packages中也可以看到torch文件,可以在文件夹下面进行导入,但是在别的问价加下面导入就会出现错误ImportError: No module named torch。最后发现,通过sudo执行就好了。
安装torchvision
pip install torchvision
出错:
RuntimeError: PyTorch does not currently provide packages for PyPI (see status at https://github.com/pytorch/pytorch/issues/566
到它提示的网址去,找到了解决办法。如下:
pip install no-deps torchvision
现在还不知道torchvision的作用,反正先装了。
莫烦大神的原话:“PyTorch 会安装两个模块, 一个是 torch, 一个 torchvision, torch 是主模块, 用来搭建神经网络的, torchvision 是辅模块, 有数据库, 还有一些已经训练好的神经网络等着你直接用, 比如 (VGG, AlexNet, ResNet).”
我安装完成后运行莫烦大神的源码,出现了一个问题:说pytorch was compiled without numpy support。但是我之前运行了conda install numpy pyyaml mkl setuptools cmake cffi
最终问题解决了,主要问题是我之前通过源码安装的时候遇到错误:error: could not create '/home/xiaofeng/anaconda2/lib/python2.7/site-packages/torch': Permission denied
然后我就运行sudo python setup.py install来进行安装。结果torch被默认安装在了我ubuntu系统自带的python2.7的文件夹(/usr/local/lib/python2.7/dist-packages/)下面,所以我之前执行程序的时候一直需要通过sudo来执行,不然提示找不到torch的模块。而numpy pyyaml mkl setuptools cmake cffi这些依赖安装在了anaconda2的文件夹下面。anaconda也包含了一个python2.7.如果我不通过sudo来执行程序的话,就会默认使用的是anaconda中安装的python2.7 所以这就造成了一个问题:sudo来执行程序,默认系统自带的python2.7,提示torch的依赖没有安装,如果不通过sudo来执行程序的话,默认的是anaconda带的python2.7 ,提示找不到torch模块。我最后重新通过源码安装了pytorch,没有用sudo直接python setup.py install。提示文件夹没有权限的,我用chmod来解决了。