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使用正则表达式分析网页中的图片并进行替换的方法
Mar 26 Python
简洁的十分钟Python入门教程
Apr 03 Python
Python函数中*args和**kwargs来传递变长参数的用法
Jan 26 Python
python和shell获取文本内容的方法
Jun 05 Python
Tornado实现多进程/多线程的HTTP服务详解
Jul 25 Python
python实现批量处理将图片粘贴到另一张图片上并保存
Dec 12 Python
python 输出列表元素实例(以空格/逗号为分隔符)
Dec 25 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
Jan 02 Python
Python 实现Image和Ndarray互相转换
Feb 19 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
Feb 26 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 Python
Python进行区间取值案例讲解
Aug 02 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
超级简单的发送邮件程序
2006/10/09 PHP
实现php加速的eAccelerator dll支持文件打包下载
2007/09/30 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
深入分析PHP引用(&)
2014/09/04 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
JavaScript OOP面向对象介绍
2010/12/02 Javascript
JavaScript高级程序设计(第3版)学习笔记5 js语句
2012/10/11 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
python中global与nonlocal比较
2014/11/21 Python
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
python邮件发送smtplib使用详解
2020/06/16 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
Python request post上传文件常见要点
2020/11/20 Python
数控专业大学生的自我鉴定
2013/11/13 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js