最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyG搭建GCN需要準(zhǔn)備的數(shù)據(jù)格式

 更新時(shí)間:2022年05月10日 15:20:58   作者:Cyril_KI  
這篇文章主要為大家介紹了PyG搭建GCN前需要準(zhǔn)備的PyG數(shù)據(jù)格式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

有關(guān)GCN的原理可以參考:GCN圖卷積神經(jīng)網(wǎng)絡(luò)原理

一開始是打算手寫一下GCN,畢竟原理也不是很難,但想了想還是直接調(diào)包吧。在使用各種深度學(xué)習(xí)框架時(shí)我們首先需要知道的是框架內(nèi)的數(shù)據(jù)集結(jié)構(gòu),因此這篇文章主要講講PyG中的數(shù)據(jù)結(jié)構(gòu)。

1. PyG數(shù)據(jù)集

原始論文中使用的數(shù)據(jù)集:

本篇文章使用Citeseer網(wǎng)絡(luò)。Citeseer網(wǎng)絡(luò)是一個(gè)引文網(wǎng)絡(luò),節(jié)點(diǎn)為論文,一共3327篇論文。論文一共分為六類:Agents、AI(人工智能)、DB(數(shù)據(jù)庫)、IR(信息檢索)、ML(機(jī)器語言)和HCI。如果兩篇論文間存在引用關(guān)系,那么它們之間就存在鏈接關(guān)系。

使用PyG加載數(shù)據(jù)集:

data = Planetoid(root='/data/CiteSeer', name='CiteSeer')
print(len(data))

輸出:

1

CiteSeer中只有一個(gè)網(wǎng)絡(luò),然后我們輸出一下這個(gè)網(wǎng)絡(luò):

data = data[0]
print(data)
print(data.is_directed())

輸出:

Data(x=[3327, 3703], edge_index=[2, 9104], y=[3327], train_mask=[3327], val_mask=[3327], test_mask=[3327])
False

x=[3327, 3703]。表示一共有3327個(gè)節(jié)點(diǎn),然后節(jié)點(diǎn)的特征維度為3703,這里實(shí)際上是去除停用詞和在文檔中出現(xiàn)頻率小于10次的詞,整理得到3703個(gè)唯一詞。

edge_index=[2, 9104],表示一共9104條edge。數(shù)據(jù)一共兩行,每一行都表示節(jié)點(diǎn)編號(hào)。

輸出一下data.y:

tensor([3, 1, 5, ..., 3, 1, 5])tensor([3, 1, 5,  ..., 3, 1, 5])

data.y表示節(jié)點(diǎn)的標(biāo)簽編號(hào),比如3表示該篇論文屬于第3類。

輸出data.train_mask:

tensor([ True, True, True, ..., False, False, False])

data.train_mask的長(zhǎng)度和y的長(zhǎng)度一致,如果某個(gè)位置為True就表示該樣本為訓(xùn)練樣本。val_mask和test_mask類似,分別表示驗(yàn)證集和訓(xùn)練集。

比如我們輸出:

print(data.y[data.test_mask])

結(jié)果為:

tensor([4, 5, 4, 4, 4, 1, 4, 2, 3, 3, 3, 3, 2, 3, 3, 4, 2, 0, 1, 2, 0, 3, 3, 4,
        2, 4, 0, 4, 3, 3, 3, 5, 4, 5, 4, 5, 1, 1, 3, 3, 3, 3, 3, 1, 2, 3, 3, 3,
        1, 2, 2, 3, 3, 1, 5, 5, 5, 3, 2, 3, 3, 3, 3, 3, 3, 3, 5, 1, 3, 1, 1, 4,
        1, 3, 3, 1, 3, 3, 2, 4, 3, 3, 3, 1, 2, 2, 2, 3, 5, 2, 1, 3, 2, 2, 2, 4,
        3, 3, 4, 0, 3, 1, 2, 2, 2, 2, 3, 2, 2, 2, 1, 1, 5, 2, 2, 1, 2, 4, 3, 1,
        1, 3, 2, 3, 4, 3, 3, 4, 4, 3, 2, 2, 1, 3, 4, 4, 4, 4, 4, 4, 5, 0, 3, 1,
        1, 3, 1, 3, 1, 3, 4, 4, 3, 2, 3, 5, 3, 3, 3, 4, 2, 2, 2, 5, 3, 1, 0, 3,
        2, 5, 2, 3, 2, 4, 2, 2, 2, 0, 5, 1, 3, 4, 4, 4, 1, 1, 5, 1, 2, 0, 1, 0,
        2, 2, 3, 3, 3, 3, 5, 4, 4, 3, 1, 1, 2, 1, 2, 2, 2, 2, 5, 0, 1, 2, 2, 4,
        0, 4, 1, 1, 2, 3, 1, 1, 2, 3, 3, 5, 2, 5, 5, 3, 1, 0, 5, 5, 5, 5, 3, 3,
        3, 0, 4, 5, 3, 4, 5, 4, 5, 2, 0, 5, 5, 5, 1, 1, 3, 1, 2, 2, 2, 3, 2, 4,
        5, 3, 3, 1, 3, 1, 2, 2, 1, 3, 1, 3, 1, 2, 1, 2, 1, 2, 2, 2, 2, 5, 4, 4,
        5, 0, 3, 4, 5, 4, 4, 4, 4, 4, 0, 0, 1, 4, 1, 1, 5, 0, 2, 2, 3, 3, 2, 2,
        0, 0, 3, 2, 4, 1, 1, 0, 0, 1, 2, 2, 2, 2, 2, 0, 4, 0, 1, 4, 1, 1, 2, 2,
        3, 3, 1, 3, 2, 4, 4, 0, 0, 3, 4, 4, 2, 2, 2, 5, 5, 2, 5, 5, 5, 5, 4, 0,
        2, 2, 0, 2, 4, 5, 4, 0, 3, 3, 5, 3, 3, 4, 2, 1, 5, 5, 0, 1, 3, 3, 3, 5,
        3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 0, 2, 2, 2, 2, 4, 3, 3,
        5, 5, 4, 5, 2, 4, 4, 4, 5, 5, 4, 2, 2, 3, 3, 4, 4, 3, 1, 3, 2, 0, 5, 5,
        5, 3, 4, 1, 4, 0, 5, 5, 0, 3, 0, 2, 3, 5, 3, 4, 2, 2, 3, 5, 1, 5, 3, 4,
        5, 5, 2, 2, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 3, 0, 0, 5, 1, 2, 3, 3, 1, 3,
        2, 4, 3, 1, 3, 3, 3, 3, 3, 1, 0, 5, 4, 4, 1, 1, 3, 4, 4, 4, 4, 5, 4, 2,
        2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 1, 4, 0, 1, 4, 4, 4, 1, 2, 1, 5, 5, 2, 4,
        4, 2, 2, 3, 1, 1, 0, 0, 2, 1, 0, 1, 5, 1, 2, 2, 3, 2, 0, 0, 3, 3, 3, 2,
        2, 2, 1, 1, 1, 3, 3, 3, 5, 3, 5, 2, 3, 2, 3, 1, 5, 2, 2, 3, 3, 3, 1, 1,
        1, 3, 3, 3, 3, 4, 4, 1, 4, 4, 1, 3, 3, 1, 0, 3, 5, 4, 4, 2, 4, 1, 0, 3,
        1, 4, 1, 4, 4, 0, 5, 3, 2, 2, 2, 5, 5, 0, 4, 4, 1, 2, 2, 3, 3, 3, 5, 5,
        5, 1, 5, 1, 4, 3, 1, 5, 5, 4, 4, 2, 3, 1, 0, 0, 5, 3, 1, 2, 1, 4, 1, 4,
        1, 2, 2, 5, 1, 2, 1, 4, 5, 5, 1, 4, 5, 5, 1, 1, 5, 5, 3, 1, 0, 0, 1, 0,
        0, 2, 0, 4, 3, 4, 3, 3, 1, 2, 3, 5, 3, 5, 5, 5, 5, 5, 3, 4, 4, 5, 4, 2,
        2, 5, 1, 4, 4, 4, 3, 1, 5, 3, 1, 3, 4, 2, 2, 4, 2, 1, 5, 2, 2, 5, 5, 3,
        3, 4, 1, 1, 2, 5, 3, 4, 4, 4, 5, 5, 1, 5, 5, 1, 5, 5, 1, 1, 1, 4, 2, 3,
        5, 4, 1, 1, 4, 5, 2, 3, 1, 2, 1, 4, 1, 4, 1, 1, 1, 0, 0, 1, 5, 0, 2, 1,
        1, 5, 1, 1, 3, 2, 3, 3, 1, 1, 2, 3, 2, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3,
        3, 5, 2, 2, 3, 4, 4, 4, 4, 0, 3, 0, 3, 4, 1, 1, 3, 3, 0, 4, 5, 0, 0, 0,
        2, 1, 3, 4, 5, 2, 1, 1, 3, 3, 4, 4, 4, 2, 2, 1, 5, 4, 0, 5, 5, 4, 3, 4,
        5, 0, 3, 0, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 5, 2, 0, 0, 1, 0, 0, 0, 3, 1,
        5, 3, 2, 3, 5, 3, 3, 3, 1, 5, 5, 5, 5, 1, 2, 1, 4, 5, 4, 3, 3, 5, 5, 1,
        4, 2, 5, 4, 1, 4, 4, 4, 4, 5, 5, 4, 3, 4, 3, 5, 3, 3, 1, 1, 0, 4, 4, 3,
        1, 1, 1, 1, 3, 3, 3, 4, 3, 1, 4, 1, 1, 3, 5, 5, 5, 4, 4, 1, 3, 1, 4, 3,
        3, 3, 1, 2, 2, 5, 3, 2, 5, 1, 3, 3, 5, 5, 4, 0, 3, 5, 5, 5, 1, 2, 2, 4,
        1, 4, 5, 5, 5, 4, 5, 2, 1, 5, 4, 4, 0, 3, 5, 4, 1, 3, 3, 5, 4, 2, 1, 0,
        1, 3, 2, 4, 3, 2, 4, 4, 1, 1, 0, 3, 3, 3, 1, 5])

可以發(fā)現(xiàn),我們輸出的是測(cè)試集的內(nèi)容。

那么很顯然,如果我們最終得到了預(yù)測(cè)值,我們就可以通過以下代碼來計(jì)算分類的正確數(shù):

correct = int(pred[data.test_mask].eq(data.y[data.test_mask]).sum().item())

模型輸出的pred實(shí)際上包含了所有節(jié)點(diǎn)的預(yù)測(cè)值,而我們只需要取測(cè)試集中的內(nèi)容,即:

pred[data.test_mask]

然后再與data.y[data.test_mask]進(jìn)行比較,最后計(jì)算二者對(duì)應(yīng)位置相等的個(gè)數(shù)即可。

2. 構(gòu)造數(shù)據(jù)集

如果我們需要的數(shù)據(jù)集在PyG中沒有,我們就需要自己手動(dòng)構(gòu)造數(shù)據(jù)集。

例如對(duì)于一個(gè)無向圖,我們知道了其節(jié)點(diǎn)特征矩陣x:

x = torch.tensor([[-1, 1], [0, 1], [1, 3]], dtype=torch.float)

一共3個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)具有兩個(gè)特征。

然后我們知道了節(jié)點(diǎn)間的鄰接關(guān)系:

edge_index = torch.tensor([[0, 1, 1, 2],
                           [1, 0, 2, 1]], dtype=torch.long)

一共4條邊,第一條邊為0->1,第2條邊為1->0。

然后我們就可以構(gòu)造數(shù)據(jù)集:

data = Data(x=x, edge_index=edge_index)

有關(guān)GCN的實(shí)現(xiàn)放在下一篇文章!

以上就是PyG搭建GCN需要準(zhǔn)備的數(shù)據(jù)格式的詳細(xì)內(nèi)容,更多關(guān)于PyG搭建GCN數(shù)據(jù)格式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中的re正則表達(dá)式模塊

    Python中的re正則表達(dá)式模塊

    這篇文章介紹了Python中的re正則表達(dá)式模塊,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • opencv 圖像腐蝕和圖像膨脹的實(shí)現(xiàn)

    opencv 圖像腐蝕和圖像膨脹的實(shí)現(xiàn)

    這篇文章主要介紹了opencv 圖像腐蝕和圖像膨脹的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 跟老齊學(xué)Python之玩轉(zhuǎn)字符串(2)更新篇

    跟老齊學(xué)Python之玩轉(zhuǎn)字符串(2)更新篇

    本文是玩轉(zhuǎn)字符串的續(xù)篇,繼續(xù)對(duì)字符串的連接方法進(jìn)行介紹,以及字符串復(fù)制、字符串長(zhǎng)度、字符大小寫的轉(zhuǎn)換。非常不錯(cuò)的文章,希望對(duì)大家有所幫助
    2014-09-09
  • tensorflow 初始化未初始化的變量實(shí)例

    tensorflow 初始化未初始化的變量實(shí)例

    今天小編就為大家分享一篇tensorflow 初始化未初始化的變量實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python中號(hào)稱神仙的六個(gè)內(nèi)置函數(shù)詳解

    Python中號(hào)稱神仙的六個(gè)內(nèi)置函數(shù)詳解

    這篇文章主要介紹了Python中號(hào)稱神仙的六個(gè)內(nèi)置函數(shù),今天分享的這6個(gè)內(nèi)置函數(shù),在使用?Python?進(jìn)行數(shù)據(jù)分析或者其他復(fù)雜的自動(dòng)化任務(wù)時(shí)非常方便,需要的朋友可以參考下
    2022-05-05
  • 詳解Python 2.6 升級(jí)至 Python 2.7 的實(shí)踐心得

    詳解Python 2.6 升級(jí)至 Python 2.7 的實(shí)踐心得

    本篇文章主要介紹了詳解Python 2.6 升級(jí)至 Python 2.7 的實(shí)踐心得,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • DataFrame中的object轉(zhuǎn)換成float的方法

    DataFrame中的object轉(zhuǎn)換成float的方法

    下面小編就為大家分享一篇DataFrame中的object轉(zhuǎn)換成float的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換

    python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換

    用python處理地理位置是非常常見的需求,下面這篇文章主要給大家介紹了關(guān)于python使用百度或高德地圖獲取地理位置并轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 推薦10款最受Python開發(fā)者歡迎的Python IDE

    推薦10款最受Python開發(fā)者歡迎的Python IDE

    這篇文章收集了一些對(duì)開發(fā)者非常有幫助的,最好的10款Python IDE,包括Vim,Eclipse with PyDev,Sublime Text,PyCharm等知明Python開發(fā)工具
    2018-09-09
  • Python MySQL查詢限制方式詳解

    Python MySQL查詢限制方式詳解

    MySQL是一款廣泛使用的關(guān)系型數(shù)據(jù)庫,而Python是一門流行的編程語言,在進(jìn)行數(shù)據(jù)庫操作時(shí),二者的結(jié)合可以幫助我們更加高效地進(jìn)行操作和管理,這篇文章主要介紹了Python MySQL查詢限制,需要的朋友可以參考下
    2023-11-11

最新評(píng)論

小金县| 松滋市| 社旗县| 南陵县| 乌拉特后旗| 石林| 满洲里市| 行唐县| 阳信县| 龙山县| 龙游县| 盐池县| 巴南区| 休宁县| 宁河县| 赫章县| 巴南区| 沙田区| 公安县| 会东县| 武威市| 友谊县| 建阳市| 南充市| 沙湾县| 双柏县| 盐边县| 柞水县| 南乐县| 正定县| 濮阳市| 黄骅市| 双城市| 墨玉县| 屯门区| 华安县| 马山县| 通江县| 安仁县| 巴林右旗| 炉霍县|