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 域名分析工具实现代码
Jul 15 Python
Python随机生成数模块random使用实例
Apr 13 Python
简单介绍Python2.x版本中的cmp()方法的使用
May 20 Python
Python3.5面向对象与继承图文实例详解
Apr 24 Python
使用Python Pandas处理亿级数据的方法
Jun 24 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
python装饰器原理与用法深入详解
Dec 19 Python
Django之富文本(获取内容,设置内容方式)
May 21 Python
Python自动巡检H3C交换机实现过程解析
Aug 14 Python
Django用户认证系统如何实现自定义
Nov 12 Python
如何基于Python pygame实现动画跑马灯
Nov 18 Python
python 开心网和豆瓣日记爬取的小爬虫
May 29 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+Tidy-完美的XHTML纠错+过滤
2007/04/10 PHP
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
php中switch语句用法详解
2015/08/17 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
关于laravel 日志写入失败问题汇总
2019/10/17 PHP
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
jQuery bind事件使用详解
2011/05/05 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
表单序列化与jq中的serialize使用示例
2014/02/21 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
webpack手动配置React开发环境的步骤
2018/07/02 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
pygame实现烟雨蒙蒙下彩虹雨
2019/11/11 Python
Django ValuesQuerySet转json方式
2020/03/16 Python
500行python代码实现飞机大战
2020/04/24 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
护理专业学生职业生涯规划范文
2014/03/11 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
高效课堂教学反思
2016/02/24 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技