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访问MySQL封装的常用类实例
Nov 11 Python
Python中的sort()方法使用基础教程
Jan 08 Python
python实现数据预处理之填充缺失值的示例
Dec 22 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
深入了解python中元类的相关知识
Aug 29 Python
python+OpenCV实现车牌号码识别
Nov 08 Python
复化梯形求积分实例——用Python进行数值计算
Nov 20 Python
Django admin组件的使用
Oct 24 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
Nov 30 Python
python requests库的使用
Jan 06 Python
python上下文管理的使用场景实例讲解
Mar 03 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 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类常量的使用详解
2013/06/08 PHP
php多个字符串替换成同一个的解决方法
2013/06/18 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
JavaScript开发规范要求(规范化代码)
2010/08/16 Javascript
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
Jquery 获取对象的几种方式介绍
2014/01/17 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
2014/03/18 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
浅析Jquery操作select
2016/12/13 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
python实现2048小游戏
2015/03/30 Python
Python中处理字符串之islower()方法的使用简介
2015/05/19 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
python函数超时自动退出的实操方法
2020/12/28 Python
AJAX的优缺点都有什么
2015/08/18 面试题
初三家长会邀请函
2014/01/18 职场文书
护士辞职信范文
2014/01/19 职场文书
教务处干事工作总结
2015/08/14 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js