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中logging库的使用总结
Oct 18 Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
python 中字典嵌套列表的方法
Jul 03 Python
对python当中不在本路径的py文件的引用详解
Dec 15 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
Jan 04 Python
python 获取图片分辨率的方法
Jan 08 Python
python爬虫模块URL管理器模块用法解析
Feb 03 Python
基于python实现微信好友数据分析(简单)
Feb 16 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 Python
python 进制转换 int、bin、oct、hex的原理
Jan 13 Python
详解Python描述符的工作原理
Jun 11 Python
Python-OpenCV实现图像缺陷检测的实例
Jun 11 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 discuz 主题表和回帖表的设计
2009/03/13 PHP
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
js读写cookie实现一个底部广告浮层效果的两种方法
2013/12/29 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
javascript消除window.close()的提示窗口
2015/05/20 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
基于jquery实现多选下拉列表
2017/08/02 jQuery
vue组件学习教程
2017/09/09 Javascript
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
Python中DJANGO简单测试实例
2015/05/11 Python
python爬虫之百度API调用方法
2017/06/11 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
pyqt5 使用cv2 显示图片,摄像头的实例
2019/06/27 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
美国知名玩具品牌:Melissa & Doug
2016/08/16 全球购物
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
毕业自我评价范文
2013/11/17 职场文书
家长给老师的道歉信
2014/01/13 职场文书
小学生竞选班干部演讲稿
2014/04/24 职场文书
师德师风剖析材料
2014/09/30 职场文书
党支部先进事迹材料
2014/12/24 职场文书
反四风问题学习心得体会
2016/01/22 职场文书