Ubuntu配置Pytorch on Graph (PoG)环境过程图解


Posted in Python onNovember 19, 2020

最近准备复现一下 KDD-20 Towards Deeper Graph Neural Networks 的代码,顺便学习一下 GCN 最新的一些进展。

GCN 的代码通常需要安装 Pytorch on Graph, 按照其 官方指导, 发现无法兼容当前所使用的服务器上的 pytorch1.3 和 cuda10.0 环境, 需要升级 cuda 和 pytorch 的版本。

于是准备重新安装一个虚拟环境,使用上 cuda 10.2 和 pytorch1.6。

1. 安装 Cuda10.2 以及对应版本的 Cudnn

安装 cuda 10.2,

wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
sudo sh cuda_10.2.89_440.33.01_linux.run

然后安装对应版本的 cudnn

但由于当前机器上已经安装了 cuda 10.0,因此想要找一些能够切换的方法,不删去当前的 cuda10.0, 发现可以使用软链接的方式进行切换

# 切换为 cuda 8.0 版本
rm -rf /usr/local/cuda #删除之前创建的软链接
sudo ln -s /usr/local/cuda-8.0/ /usr/local/cuda/
nvcc --version #查看当前 cuda 版本

 nvcc: NVIDIA (R) Cuda compiler driver
 Copyright (c) 2005-2016 NVIDIA Corporation
 Built on Mon_Jan_23_12:24:11_CST_2017
 Cuda compilation tools, release 8.0, V8.0.62

# cuda8.0 切换到 cuda9.0 
rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-9.0/ /usr/local/cuda/
nvcc --version

安装 cuda10.2,这里只安装 Cuda Toolkit 10.2, 不安装 driver, 因为之前 Cuda10.0 已经装过 driver 了。

Ubuntu配置Pytorch on Graph (PoG)环境过程图解

然后尝试安装 对应版本的 cudnn, 在linux上

使用

wget "https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.3.33/10.2_20200825/cudnn-10.2-linux-x64-v8.0.3.33.tgz"

会导致一直显示 403 Forbid 错误,但用 windows 浏览器可以访问成功,用 windows 下载,但后缀名变为了 ".solitairetheme8",

mv cudnn-10.2-linux-x64-v8.0.3.33.solitairetheme8 cudnn-10.2-linux-x64-v8.0.3.33.tgz

接下来安装 cudnn,注意到,现在有多个版本的 cuda 了,不要再使用软链接 /usr/local/cuda/, 而应该使用对应版本的 cuda 地址。

使用 cd /usr/local/ 可以看到当前安装的 cuda 的情况, 我这里是:

Ubuntu配置Pytorch on Graph (PoG)环境过程图解

使用如下命令完成 cudnn 的安装:

tar -zxvf cudnn-10.2-linux-x64-v8.0.3.33.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64/
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*

从官网下载实在太慢,也可以改为设置为 清华源

# 首先执行如下几条命令更换清华镜像源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes

安装结果:

Ubuntu配置Pytorch on Graph (PoG)环境过程图解

突然发现,conda 也会安装一个 cudatoolkit=10.2, 但这个和自己手动安装的还是有很大的不同的

安装 pytorch1.7 一直没有成功,最新版的 pytorch1.7 需要从国外官网源头直接进行下载,速度太慢,一直失败。
所以尝试安装 pytroch 1.5,

conda install pytorch=1.5

conda install torchvision

然后再按照 PoG 官网安装相应的包:

pip install torch-scatter
pip install torch-sparse
pip install torch-cluster
pip install torch-spline-conv
pip install torch-geometric

最后终于成功完成了安装。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用新浪微博API发送微博的例子
Apr 10 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
Centos下实现安装Python3.6和Python2共存
Aug 15 Python
Python 字符串换行的多种方式
Sep 06 Python
python快排算法详解
Mar 04 Python
对Django 转发和重定向的实例详解
Aug 06 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
pycharm激活码有效到2020年11月底
Sep 18 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
Jan 05 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 Python
python基于pygame实现飞机大作战小游戏
Nov 19 #Python
Python numpy大矩阵运算内存不足如何解决
Nov 19 #Python
python3 os进行嵌套操作的实例讲解
Nov 19 #Python
如何创建一个Flask项目并进行简单配置
Nov 18 #Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 #Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
Nov 18 #Python
PyCharm最新激活码PyCharm2020.2.3有效
Nov 18 #Python
You might like
thinkphp连贯操作实例分析
2014/11/22 PHP
PHP二维数组去重算法
2016/12/17 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
2017/08/11 PHP
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
JS执行删除前的判断代码
2014/02/18 Javascript
jQuery之字体大小的设置方法
2014/02/27 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
Python字符串详细介绍
2015/05/09 Python
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
Python使用内置json模块解析json格式数据的方法
2017/07/20 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
py-charm延长试用期限实例
2019/12/22 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
python中doctest库实例用法
2020/12/31 Python
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
优秀教师先进事迹
2014/01/22 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
红旗团支部事迹材料
2014/01/27 职场文书
政治思想表现评语
2014/05/04 职场文书
政工师工作总结2015
2015/05/26 职场文书
小学教师见习总结
2015/06/23 职场文书
小学运动会通讯稿
2015/07/18 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
python开发飞机大战游戏
2021/07/15 Python
MySQL性能指标TPS+QPS+IOPS压测
2022/08/05 MySQL