pytorch 第三方模块 GraphNAS 安装成功记录

实验室的小师妹要安装pytorch的第三方模块,经过多方努力没有安装上,后来我接手后也是感觉头疼。

该模块地址:

  https://github.com/GraphNAS/GraphNAS

该模块主页给出两种安装方式:

Requirements

Recent versions of PyTorch, numpy, scipy, sklearn, dgl, torch_geometric and networkx are required. Ensure that PyTorch 1.1.0 and CUDA 9.0 are installed. Then run:

pip install torch==1.1.0 -f https://download.pytorch.org/whl/cu90/torch_stable.html
pip install -r requirements.txt

If you want to run in docker, you can run:

docker build -t graphnas -f DockerFile . 
docker run -it -v $(pwd):/GraphNAS graphnas python -m eval_scripts.semi.eval_designed_gnn






第一种安装方式, 使用 pip 的安装方式, 各种报错, 错误种类太多。
不过看了看该模块的源代码后对报错的种类有了一些了解, 报错按照运行方式来分类的话可以分为CPU和GPU端上的 编译报错和运行报错,
CPU端上 编译报错就是GCC, G++ 没有安装,或者安装版本不对, 运行报错就是python的版本和编译的版本各种不对。

GPU端上 编译报错就是没有安装NVIDIA显卡的编译器 没有NVCC, 有了nvcc则是没有配置CUDA_HOME PATH 路径。



环境变量 PATH 为:
PATH="/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

环境变量   LD_LIBRARY_PATH 为:

LD_LIBRARY_PATH="/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64"






------------------------------------





最为关键的就是GPU端编译后运行报错,显示版本不对应,最后终于安装上给出安装的详细配置。


python==3.6.8 (系统原生Python 或者 conda创建的环境 均可)
pytorch 选择pip方式安装的 pytorch==1.1.0 (cuda==9.0)

运行及编译的环境为 cuda10.1 或 cuda10.2 均可。



其中, pytorch 下载地址: https://download.pytorch.org/whl/cu90/torch-1.1.0-cp36-cp36m-linux_x86_64.whl



采用以上配置,可以成功编译模块,安装,然后运行。

验证是否成功:(测试代码)
python -m eval_scripts.semi.eval_designed_gnn
python -m eval_scripts.sup.eval_designed_gnn
python -m graphnas.main --dataset Citeseer
python -m graphnas.main --dataset Citeseer --supervised True --search_mode micro

其实,之前好多种版本的python ,cuda 都已经试过,conda安装的Python还有Ubuntu自带原生的Python都试过,最后就这个成了。

之所以这个最后成功也是误打误撞的,首先电脑上系统自带的原生Python比较老,是3.6.8版本的,没有安装conda, 于是采用pip安装的方式安装pytorch,又由于网速问题选择安装wheel版本的, 然后记错了本地cuda版本,原以为是cuda9.0的,于是安装的pytorch是cuda9.0的, 但是实际上电脑系统的cuda是10.1版本的。于是乎就有了上面的这个成功的配置。中间过程用过各种版本,神奇的是采用conda安装的3.7版本Python和对应的pytorch无法成功安装该模块。这也是试过太多的版本,最后试的有些迷糊了,然后就这样胡乱的成功编译安装,运行了,这也是好神奇的事情,回顾整个安装这个模块的时间可以说一整天时间都用上也不为过。




---------------------------------------------





事后个人总结了一下,安装这个模块的难点主要是GPU上运行代码的编译,由于很多人都是使用conda来跑pytorch的,
但是conda安装的cuda-toolkit只有runtime的api没有编译时候的api,所以一定要在电脑上手动安装cuda,并且配置好环境参数,
同时不要使用conda下的pytorch,因为conda下安装pytorch会自动安装runtime版本的cuda,这样又会和主机的cuda版本造成冲突。
所以,关键点在于主机上手动安装cuda,并配置环境,pytorch也只用pip方式安装wheel版本,这样就避免了编译代码的cuda和运行代码的cuda版本不一致问题。














原文地址:https://www.cnblogs.com/devilmaycry812839668/p/13704738.html