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发送邮件的实例代码(支持html、图片、附件)
Mar 04 Python
Python实现使用卷积提取图片轮廓功能示例
May 12 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
python整小时 整天时间戳获取算法示例
Feb 20 Python
python时间序列按频率生成日期的方法
May 14 Python
pandas.read_csv参数详解(小结)
Jun 21 Python
python实现最小二乘法线性拟合
Jul 19 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 Python
Python爬虫代理池搭建的方法步骤
Sep 28 Python
python时间time模块处理大全
Oct 25 Python
python palywright库基本使用
Jan 21 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
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
文字幻灯片
2006/06/26 Javascript
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
一个JavaScript防止表单重复提交的实例
2014/10/21 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
使用python检测手机QQ在线状态的脚本代码
2013/02/10 Python
简单介绍Python中的RSS处理
2015/04/13 Python
实例讲解Python的函数闭包使用中应注意的问题
2016/06/20 Python
python简单读取大文件的方法
2016/07/01 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
python对一个数向上取整的实例方法
2020/06/18 Python
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
毕业自我鉴定书
2014/03/24 职场文书
教师网络培训心得体会
2016/01/09 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
 Python 中 logging 模块使用详情
2022/03/03 Python
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL