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下使用状态机的教程
Apr 11 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
Apr 28 Python
在Python下尝试多线程编程
Apr 28 Python
tensorflow 1.0用CNN进行图像分类
Apr 15 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
Django如何使用redis作为缓存
May 21 Python
Python 内存管理机制全面分析
Jan 16 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 Python
python必学知识之文件操作(建议收藏)
May 30 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不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
php中file_exists函数使用详解
2015/05/08 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
jQuery实现动态文字搜索功能
2017/01/05 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
实用的 vue tags 创建缓存导航的过程实现
2020/12/03 Vue.js
python函数返回多个值的示例方法
2013/12/04 Python
python获取目录下所有文件的方法
2015/06/01 Python
python的常用模块之collections模块详解
2018/12/06 Python
python3对接mysql数据库实例详解
2019/04/30 Python
通过python3实现投票功能代码实例
2019/09/26 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
python else语句在循环中的运用详解
2020/07/06 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
酒吧员工的岗位职责
2013/11/26 职场文书
廉洁校园实施方案
2014/05/25 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
法人身份证明书
2014/10/08 职场文书
小人国观后感
2015/06/11 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书
2015大学迎新标语
2015/07/16 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python