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正确重载运算符的方法示例详解
Aug 27 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
python实现比较类的两个instance(对象)是否相等的方法分析
Jun 26 Python
详解Python是如何实现issubclass的
Jul 24 Python
Django使用Channels实现WebSocket的方法
Jul 28 Python
python tkinter库实现气泡屏保和锁屏
Jul 29 Python
keras模型保存为tensorflow的二进制模型方式
May 25 Python
pytorch 移动端部署之helloworld的使用
Oct 30 Python
Python 正则模块详情
Nov 02 Python
python 实现图片特效处理
Apr 03 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
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
javascript 闭包
2011/09/15 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
深入剖析Node.js cluster模块
2018/05/23 Javascript
详解微信小程序胶囊按钮返回|首页自定义导航栏功能
2019/06/14 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
[01:07:57]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第二场 1月19日
2021/03/11 DOTA
基于Python log 的正确打开方式
2018/04/28 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
Django多进程滚动日志问题解决方案
2019/12/17 Python
详解Python的三种拷贝方式
2020/02/11 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
11月红领巾广播稿
2014/01/17 职场文书
保险公司开门红口号
2014/06/21 职场文书
八项规定对照检查材料
2014/08/31 职场文书
法人代表证明书范本
2015/06/18 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
结婚主持人致辞
2015/07/28 职场文书
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis
Python的property属性详细讲解
2022/04/11 Python