Task01:簡單圖論與環(huán)境配置與PyG庫

近期參加了開源組織Datawhale的線上組隊學(xué)習(xí)活動,因為之前有看過一些圖神經(jīng)的理論知識,之后的課題方向也想向圖神經(jīng)靠攏,所以打算跟著Datawhale再重新走一遍圖神經(jīng)。然后期間每個任務(wù)都會總結(jié)(估計會有很多不到位的地方拉~如果有人會看到,請多多包涵哦?。?/p>

Datawhale提供的課程鏈接:https://github.com/datawhalechina/team-learning-nlp/blob/master/GNN

一,簡單圖論

1.圖的表示


圖1.圖的定義

節(jié)點和邊的信息可以是類別型的(categorical),類別型數(shù)據(jù)的取值只能是哪一類別。一般稱類別型的信息為標簽(label)。

節(jié)點和邊的信息可以是數(shù)值型的(numeric),數(shù)值型數(shù)據(jù)的取值范圍為實數(shù)。一般稱數(shù)值型的信息為屬性(attribute)。


圖2.圖的鄰接矩陣(更正:有權(quán)圖里面權(quán)重w屬于[0,1],不是{0,1})


圖3.無向無權(quán)圖及其鄰接矩陣

2.圖的屬性

2.1 結(jié)點的度


圖4.結(jié)點的度

2.2 鄰接結(jié)點(neighbors)


圖5.鄰接節(jié)點

2.3 行走(walk)


圖6.行走


圖7.定理

2.4 路徑(path)

路徑是結(jié)點不可重復(fù)的行走。

2.5 子圖(subgraph)


圖8.子圖

2.6 連通分量(connected component)


圖9.連通分量

2.7 連通圖(connected graph)

當一個圖只包含一個連通分量,即其自身,那么該圖是一個連通圖。

2.8 最短路徑(shortest path)


圖10.最短路徑

2.9 直徑(diameter)


圖11.直徑

2.10 拉普拉斯矩陣


圖12.拉普拉斯矩陣

對稱歸一化的拉普拉斯矩陣如下所示:


圖13.對稱歸一化的拉普拉斯矩陣

3.圖的基本類型

3.1 有向圖和無向圖


圖14.有向圖和無向圖

3.2 非加權(quán)圖和加權(quán)圖


圖15.非加權(quán)圖和加權(quán)圖

3.3 連通圖和非連通圖


圖16.連通圖和非連通圖

3.4 二部圖


圖17.二部圖

3.5 同質(zhì)圖和異質(zhì)圖

同質(zhì)圖(Homogeneous Graph):只有一種類型的節(jié)點和一種類型的邊的圖

異質(zhì)圖(Heterogeneous Graph):存在多種類型的節(jié)點和多種類型的邊的圖。

二,環(huán)境配置

1.使用nvidia-smi命令查看服務(wù)器上GPU情況

圖18. 服務(wù)器上GPU情況

2.安裝正確版本的pytorch和cudatoolkit,此處安裝1.8.1版本的pytorch和11.1版本的cudatoolkit

在vscode上新建虛擬環(huán)境gnn_env_lj,用來安裝正確版本的pytorch和cudatoolkit。

新建虛擬環(huán)境:conda create -n gnn_env_lj python=3.8.5,創(chuàng)建新的虛擬環(huán)境gnn_env_lj,并在里面安裝了python3.8.5,然后conda activate gnn_env_lj,激活虛擬環(huán)境,在該虛擬環(huán)境里面安裝相應(yīng)版本的pytorch和cudatoolkit。

使用教程提供的conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c nvidia代碼安裝總是有幾個包安裝不上,如下圖所示:

code1


code2

把裝不上的四個包用pip install安裝,發(fā)現(xiàn)只有不加版本號的時候才能裝上,好奇怪!


code3

最后在pytorch官網(wǎng)上找到對應(yīng)版本的pip安裝pytorch代碼:pip3 install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html,

pytorch官網(wǎng)網(wǎng)址:https://pytorch.org/

pytorch官網(wǎng)

運行這段代碼后可以成功安裝pytorch:

code4

然后確認是否正確安裝,以下結(jié)果表示安裝正確。

code5

3.安裝正確版本的PyG

code6

三.Data類——PyG中圖的表示及其使用

1.PyG圖數(shù)據(jù)的表示及其使用,即學(xué)習(xí)PyG中的Data類

code7
code8
code9
code10

2.PyG中圖數(shù)據(jù)的表示及其使用,即學(xué)習(xí)PyG中Dataset類

PyG內(nèi)置了大量常用的基準數(shù)據(jù)集,下面我們以PyG內(nèi)置的Planetoid數(shù)據(jù)集為例,來學(xué)習(xí)PyG中圖數(shù)據(jù)集的表示及使用

code11


code12

展示一個簡單的GCN模型構(gòu)造和訓(xùn)練過程,沒有用到Dataset和DataLoader,我們將使用一個簡單的GCN層,并在Cora數(shù)據(jù)集上實驗。

code13

4.作業(yè)


code14
code15
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容