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 相关文章推荐
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
Python中属性和描述符的正确使用
Aug 23 Python
Django数据库操作的实例(增删改查)
Sep 04 Python
异步任务队列Celery在Django中的使用方法
Jun 07 Python
python实现简单名片管理系统
Nov 30 Python
详解python配置虚拟环境
Apr 08 Python
使用TensorFlow直接获取处理MNIST数据方式
Feb 10 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
Apr 21 Python
python连接mysql有哪些方法
Jun 24 Python
Win10环境中如何实现python2和python3并存
Jul 20 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 Python
详解Python中__new__方法的作用
Mar 31 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中判断一个字符串包含另一个字符串的方法
2007/03/19 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
php的hash算法介绍
2014/02/13 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
jQuery实现动态添加和删除一个div
2015/08/12 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
初学Python实用技巧两则
2014/08/29 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
python如何定义带参数的装饰器
2018/03/20 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
django如何自己创建一个中间件
2019/07/24 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
解决django xadmin主题不显示和只显示bootstrap2的问题
2020/03/30 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
大学生职业生涯规划书范文
2014/01/04 职场文书
总会计师岗位职责
2014/02/19 职场文书
买房协议书
2014/04/11 职场文书
慈善晚会策划方案
2014/05/14 职场文书
电子信息工程自荐信
2014/05/26 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
承兑汇票延期证明
2015/06/23 职场文书
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript