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 StringIO模块实现在内存缓冲区中读写数据
Apr 08 Python
python简单实现旋转图片的方法
May 30 Python
python实现简单淘宝秒杀功能
May 03 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
django项目搭建与Session使用详解
Oct 10 Python
对python捕获ctrl+c手工中断程序的两种方法详解
Dec 26 Python
使用Django2快速开发Web项目的详细步骤
Jan 06 Python
python移位运算的实现
Jul 15 Python
基于Python获取照片的GPS位置信息
Jan 20 Python
PyTorch加载自己的数据集实例详解
Mar 18 Python
快速解释如何使用pandas的inplace参数的使用
Jul 23 Python
Python 无限级分类树状结构生成算法的实现
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
五个PHP程序员工具
2008/05/26 PHP
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
div层的移动及性能优化
2010/11/16 Javascript
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
vue中nextTick用法实例
2019/09/11 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
python控制台显示时钟的示例
2014/02/24 Python
Python科学计算之Pandas详解
2017/01/15 Python
python按照多个条件排序的方法
2019/02/08 Python
django admin组件使用方法详解
2019/07/19 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
中英文自我评价语句
2013/12/20 职场文书
电子商务自荐书范文
2014/01/04 职场文书
教师对学生的寄语
2014/04/03 职场文书
车间安全生产标语
2014/06/06 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
2015年加油站工作总结
2015/05/13 职场文书
安全教育片观后感
2015/06/17 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis