Ubuntu配置Pytorch on Graph (PoG)環(huán)境過(guò)程圖解
最近準(zhǔn)備復(fù)現(xiàn)一下 KDD-20 Towards Deeper Graph Neural Networks 的代碼,順便學(xué)習(xí)一下 GCN 最新的一些進(jìn)展。
GCN 的代碼通常需要安裝 Pytorch on Graph, 按照其 官方指導(dǎo), 發(fā)現(xiàn)無(wú)法兼容當(dāng)前所使用的服務(wù)器上的 pytorch1.3 和 cuda10.0 環(huán)境, 需要升級(jí) cuda 和 pytorch 的版本。
于是準(zhǔn)備重新安裝一個(gè)虛擬環(huán)境,使用上 cuda 10.2 和 pytorch1.6。
1. 安裝 Cuda10.2 以及對(duì)應(yīng)版本的 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
但由于當(dāng)前機(jī)器上已經(jīng)安裝了 cuda 10.0,因此想要找一些能夠切換的方法,不刪去當(dāng)前的 cuda10.0, 發(fā)現(xiàn)可以使用軟鏈接的方式進(jìn)行切換
# 切換為 cuda 8.0 版本 rm -rf /usr/local/cuda #刪除之前創(chuàng)建的軟鏈接 sudo ln -s /usr/local/cuda-8.0/ /usr/local/cuda/ nvcc --version #查看當(dāng)前 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, 因?yàn)橹?Cuda10.0 已經(jīng)裝過(guò) driver 了。
然后嘗試安裝 對(duì)應(yīng)版本的 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"
會(huì)導(dǎo)致一直顯示 403 Forbid 錯(cuò)誤,但用 windows 瀏覽器可以訪問(wèn)成功,用 windows 下載,但后綴名變?yōu)榱?".solitairetheme8",
mv cudnn-10.2-linux-x64-v8.0.3.33.solitairetheme8 cudnn-10.2-linux-x64-v8.0.3.33.tgz
接下來(lái)安裝 cudnn,注意到,現(xiàn)在有多個(gè)版本的 cuda 了,不要再使用軟鏈接 /usr/local/cuda/, 而應(yīng)該使用對(duì)應(yīng)版本的 cuda 地址。
使用 cd /usr/local/ 可以看到當(dāng)前安裝的 cuda 的情況, 我這里是:
使用如下命令完成 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*
從官網(wǎng)下載實(shí)在太慢,也可以改為設(shè)置為 清華源
# 首先執(zhí)行如下幾條命令更換清華鏡像源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
安裝結(jié)果:
突然發(fā)現(xiàn),conda 也會(huì)安裝一個(gè) cudatoolkit=10.2, 但這個(gè)和自己手動(dòng)安裝的還是有很大的不同的
安裝 pytorch1.7 一直沒(méi)有成功,最新版的 pytorch1.7 需要從國(guó)外官網(wǎng)源頭直接進(jìn)行下載,速度太慢,一直失敗。
所以嘗試安裝 pytroch 1.5,
conda install pytorch=1.5
conda install torchvision
然后再按照 PoG 官網(wǎng)安裝相應(yīng)的包:
pip install torch-scatter
pip install torch-sparse
pip install torch-cluster
pip install torch-spline-conv
pip install torch-geometric
最后終于成功完成了安裝。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python利用yield?form實(shí)現(xiàn)異步協(xié)程爬蟲(chóng)
這篇文章主要為大家詳細(xì)介紹了Python如何利用yield?form實(shí)現(xiàn)異步協(xié)程爬蟲(chóng)。其實(shí)這是很古老的用法了,現(xiàn)在大多用的aiohttp庫(kù)實(shí)現(xiàn),這篇記錄僅僅用做個(gè)人的協(xié)程底層實(shí)現(xiàn)的學(xué)習(xí),希望對(duì)大家有所幫助2022-11-11Django把SQLite數(shù)據(jù)庫(kù)轉(zhuǎn)換為Mysql數(shù)據(jù)庫(kù)的過(guò)程
之前我們默認(rèn)使用的是SQLite數(shù)據(jù)庫(kù),我們開(kāi)發(fā)完成之后,里面有許多數(shù)據(jù),如果我們想轉(zhuǎn)換成Mysql數(shù)據(jù)庫(kù),那我們先得把舊數(shù)據(jù)從SQLite導(dǎo)出,然后再導(dǎo)入到新的Mysql數(shù)據(jù)庫(kù)里去,這篇文章主要介紹了Django如何把SQLite數(shù)據(jù)庫(kù)轉(zhuǎn)換為Mysql數(shù)據(jù)庫(kù),需要的朋友可以參考下2023-05-05Python Django實(shí)現(xiàn)layui風(fēng)格+django分頁(yè)功能的例子
今天小編就為大家分享一篇Python Django實(shí)現(xiàn)layui風(fēng)格+django分頁(yè)功能的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08如何使用django-treebeard實(shí)現(xiàn)樹(shù)類(lèi)型存儲(chǔ)與編輯
這篇文章主要介紹了使用django-treebeard實(shí)現(xiàn)樹(shù)類(lèi)型存儲(chǔ)與編輯的宣相關(guān)操作代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-08-08Python中使用__new__實(shí)現(xiàn)單例模式并解析
單例模式是一個(gè)經(jīng)典設(shè)計(jì)模式,簡(jiǎn)要的說(shuō),一個(gè)類(lèi)的單例模式就是它只能被實(shí)例化一次,實(shí)例變量在第一次實(shí)例化時(shí)就已經(jīng)固定。 這篇文章主要介紹了Python中使用__new__實(shí)現(xiàn)單例模式并解析 ,需要的朋友可以參考下2019-06-06Python讀取DataFrame的某行或某列的方法實(shí)現(xiàn)
Dataframe是Python中一種重要的數(shù)據(jù)處理工具,它能夠以表格形式存儲(chǔ)并處理數(shù)據(jù),本文主要介紹了Python讀取DataFrame的某行或某列的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04基于python實(shí)現(xiàn)地址和經(jīng)緯度轉(zhuǎn)換
這篇文章主要介紹了基于python實(shí)現(xiàn)地址和經(jīng)緯度轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Python Flask前端自動(dòng)登錄功能實(shí)現(xiàn)詳解
這篇文章主要介紹了Python Flask前端自動(dòng)登錄功能實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10