AX和A(T)X的區別是?

目錄

1.快速了解的例子:?

(1)假設所有節點的初始特征都是[1, 0, 0]? ,那么AX的結果是:

(2)?的結果是:

(3)? 總結:

2.計算結構系數的例子

(1)源代碼的計算形式是:

? (2) 正常的AX是:

(3)? ?A轉置以后發現和上面的源代碼的 X 是一致的;僅僅展示轉換后的結果;

3.總結:


1.快速了解的例子:?

來看這個例子:

目標節點是有向邊箭頭指向的點。在有向圖中,每條有向邊都有一個起點和一個終點,起點被稱為源節點,終點被稱為目標節點。箭頭從源節點指向目標節點,表示數據或信息從源節點流向目標節點。

(1)假設所有節點的初始特征都是[1, 0, 0]? ,那么AX的結果是:

可以看到每一行的結果表示的是從目標節點傳出的信息的和

(2)A^{T}X?的結果是:

這里每一行的結果才是從源節點(鄰居節點)傳入目標節點的信息。

(3)? 總結:

pytorch geometric中為何要將稀疏鄰接矩陣寫成轉置的形式adj_t?

原因就是

  • 首先?pytorch geometric?的邊信息可以有兩種存儲模式,第一種是edge_index,它的shape是[2, N],其中?N?是邊的數目。第一個N維的元素存儲邊的原點的信息,稱為source,第二個N維的元素存儲邊的目標點的信息,稱為target。?舉個例子,如果我們有以下這樣一張有向圖,那么edge_index是這樣的:?tensor([[1, 2, 3, 4], [0, 0, 0, 0]]),邊是(1,0), (2,0), (3,0), (3,0)
  • 如果以上的圖是無向圖的話,那么0這個節點也指向1,2,3,4這幾個節點,edge_index則應該是這樣的: tensor([[1, 2, 3, 4,0, 0, 0, 0], [0, 0, 0, 0, 1, 2, 3, 4]]),邊是(1,0), (2,0), (3,0), (3,0), (0,1), (0,2), (0,3), (0,4)。edge_index這么寫的原因是,在pytorch geometric中,用scatter一類的方式可以很方便地實現,從source到target,這種默認的邊傳遞方式。(當然傳遞方式你也可以改成從target傳遞到source。)
  • pytorch geometric的邊信息的第二種存儲模式是adj_t,它是一個sparse tensor。這里我們看到作者在adj后面加上了t,說明它是鄰接矩陣的轉置。為什么要寫成轉置呢,我們接著上面edge_index
  • edge_index中信息傳遞是source to target,也就是edge_index[0] to edge_index[1],而adj計算的是將原圖的有向邊的方向調轉以后的新圖:然后得到新圖上從鄰居節點到目標節點聚合的消息。所以在做矩陣計算傳遞信息的時候,作者將 adj 轉換成adj_t ,并且將它作為默認形式,這樣計算的也就是從源節點到目標節點的信息和,這樣就保持了一致。

2.計算結構系數的例子

節點的度數作為節點的初始特征

傳入各節點的消息(不算自己):

  • 0:[0,1,0]*0.5+[0,1,0]*0.5 = [0, 1, 0]
  • 1:? ?[0,1,0]*0.5+[0,1,0]*0.5 =?[0, 1, 0]
  • 2:? [0,1,0]*0.5+[1,0,0]*0,5 =[1/2, 1/2, 0]
  • 3:? [0,1,0]*1/3+[0,1,0]U*1/3+[0,0,1]*1/3=[0, 2/3, 1/3]
  • 4:? [0,1,0]*0.5+[0,1,0]*0.5 =?[0, 1, 0]
  • 5:? [1,0,0]*1= [1,0,0]
  • 6:?[0,1,0]*0.5+[1,0,0]*0,5 =[1/2, 1/2, 0]

(1)源代碼的計算形式是:

這里的A不是標準的A,是weight,在計算的結構系數時候,weight[node][index]表示的是鄰居 index 對與目標節點 node的重要程度。結果是:

? (2) 正常的AX是:

計算的將原圖的有向邊的方向調轉以后的新圖:然后得到新圖上從鄰居節點到目標節點聚合的消息。

(3)A^{T}X? ?A轉置以后發現和上面的源代碼的 X 是一致的;僅僅展示轉換后的結果;

所以源代碼的計算結果沒錯的。我的思路也是對的。

?A^{T}X?算的是正兒八經的原圖的從源節點(鄰居節點)到目標節點的信息。

3.總結:

  • 對于無向圖來說,A默認邊上的權重都為1,所以A和A的轉置結果一致,其中在PYG中,有向圖還是作為有向圖去處理了,上邊edge_index的例子就是最好的說明。
  • 當遇到有向圖,尤其是節點之間互相有邊,邊上的權重還不一樣,那么就要注意將A轉換為A的轉置進行矩陣乘法。

參考的文章有:

pytorch geometric中為何要將稀疏鄰接矩陣寫成轉置的形式adj_t_pytorch中的稀疏矩陣為什么要轉置-CSDN博客

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214807.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214807.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214807.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

day45-46-Vue+ElementUI實現學生管理

VueElementUI實現學生管理 代碼: qiushiju/java2313_vue_elementui_crud (gitee.com) 一、思考 考慮需求(登錄,查詢全部,基本增刪改查,分頁,搜索,批量) 設計數據庫搭建項目 后端…

2024美賽備戰2--模型建立(*****必看****)

建模 美賽涉及的建模知識范圍非常廣且深,縱觀美賽真題不難發現,很多的模型 都是讀研或者讀博的時候才會真正深入開始研究,因此,對于做建模的同學來說, 是無法在賽前吃透大量模型的。推薦本科生分兩個步驟去有效準備比賽…

【S32DS RTD實戰】-1.3-S32K3工程生成S19,BIN,Hex文件,以及Post-build steps的妙用

目錄 1 方法一:逐個生成Motorola S-record(s19,srec…),Intel HEX,Bin文件 1.1 生成Motorola S-record(s19,srec…)文件 1.2 生成Intel HEX文件 1.3 生成Bin文件 2 …

python的Streamlit庫的text_input組件

text_input 常用的輸入組件,這里注意記錄一下具體的參數,方便使用 函數簽名 st.text_input(label, value"", max_charsNone, keyNone, type"default", helpNone, autocompleteNone, on_changeNone, argsNone, kwargsNone, *, pla…

【LeetCode】414. 第三大的數

414. 第三大的數 難度:簡單 題目 給你一個非空數組,返回此數組中 第三大的數 。如果不存在,則返回數組中最大的數。 示例 1: 輸入:[3, 2, 1] 輸出:1 解釋:第三大的數是 1 。示例 2&#xf…

計算機服務器中了mkp勒索病毒怎么辦,mkp勒索病毒解密數據恢復

網絡技術的不斷發展,也為網絡安全帶來了威脅,近期云天數據恢復中心的工程師陸續接到很多企業的求助,在本月,很多企業的計算機服務器遭到了mkp勒索病毒攻擊,導致企業計算機系統癱瘓,無法正常工作&#xff0c…

vue生命周期和路由

Vue.js 生命周期是Vue.js實例從創建到銷毀的整個過程中所經過的一系列事件,可以理解為Vue.js的生命周期鉤子函數。在這些生命周期鉤子函數中,你可以添加自定義的邏輯代碼,以便在組件生命周期的不同階段進行不同的操作。Vue.js生命周期共分為八…

Linux的ps簡單實現

原理&#xff1a;遍歷下的/proc/%s/task/%s/status所有文件&#xff0c;兩個%s都為pid號。 注&#xff1a;多線程下&#xff0c;只打印一個pid/task下的所有目錄&#xff0c;即可收集各個線程對應的信息。 $ cat ps.c #include <stdio.h> #include <stdlib.h> #in…

《深入理解計算機系統》學習筆記 - 第四課 - 機器級別的程序

Lecture 05 Machine Level Programming I Basics 機器級別的程序 文章目錄 Lecture 05 Machine Level Programming I Basics 機器級別的程序intel 處理器的歷史和體系結構芯片的構成AMD 公司(Advanced Micro Devices&#xff0c;先進的微型設備) C, 匯編, 機器代碼定義匯編/機器…

2024美賽備戰1--數據處理(數據預處理,異常值處理,預測模型,插值擬合 *****必看****)

1.數據預處理 所謂數據預處理&#xff0c;就是指在正式做題之前對數據進行的一些處理。在有些情 況下&#xff0c;出題方提供的數據或者網上查找的數據并不能直接使用&#xff0c;比如缺少數據甚 至是異常數據&#xff0c;如果直接忽略缺失值&#xff0c;或者沒發現異常數據&am…

angular material mat-error 失效不展示

1.你命名了控制mat-error顯示與否的變量&#xff0c;卻沒有在html里使用 2.mat-error是放在mat-form-field里才生效的&#xff0c;如果 <input matInput required formControlName"phoneNumber" /> 中的phoneNumber其實是valid&#xff0c;通過驗證的&#x…

【KALI】設置靜態IP地址

ip: 192.168.1.10/24 網關&#xff1a;192.168.1.1 DNS&#xff1a;192.168.1.254/etc/network/interfaces原始文件內容為&#xff1a; # This file describes the network interfaces available on your system # and how to activate them. For more information, see inter…

數字圖像處理(實踐篇)二十一 人臉識別

目錄 1 安裝face_recognition 2 涉及的函數 3 人臉識別方案 4 實踐 使用face_recognition進行人臉識別。 1 安裝face_recognition pip install face_recognition 或者 pip --default-timeout100 install face_recognition -i http://pypi.douban.com/simple --trusted-…

川崎ZX-6R確定引進,636它真的來了,3C認證已過。

最新消息&#xff0c;兄弟們&#xff0c;你們期待已久的川崎ZX6R&#xff08;636&#xff09;基本已經確定引進了&#xff0c;官方的3C認證已經通過&#xff0c;那么從3C里面我們可以看到哪幾個信息&#xff1f;產品代號ZX636J就是心心念念的ZX-6R了。 有些小伙伴不太清楚3C認…

t-SNE完整筆記 (附Python代碼)

t-SNE(t-distributed stochastic neighbor embedding)是用于降維的一種機器學習算法&#xff0c;是由 Laurens van der Maaten 和 Geoffrey Hinton在08年提出來。此外&#xff0c;t-SNE 是一種非線性降維算法&#xff0c;非常適用于高維數據降維到2維或者3維&#xff0c;進行可…

laravel定時任務配置手冊

任務調度在 app/Console/Kernel.php 的 schedule 方法中進行定義&#xff1b; 分配多種調度計劃&#xff1a;結合其他一些特定條件&#xff0c;我們可以生成在一周中特定時間運行的任務。舉個例子&#xff0c;在每周一執行命令&#xff1a; 方法 描述 ->cron(* * * * *); …

分配棧空間的三種方式(基于適配qemu的FreeRTOS分析)

1、定義全局的數組 定義的全局數組屬于bss段&#xff0c;相當于把bss段的一部分作為棧空間&#xff0c;棧空間的大小就是數組的大小如果把棧空間放在bss段&#xff0c;則在bss段清零時會多清零一段地址空間 2、在鏈接腳本中指定 用鏈接腳本在所有段的后面增加stack段&#xff…

15:00面試,15:06就出來了,問的問題真變態。。。

剛從小廠出來&#xff0c;沒想到在另一家公司我又寄了。 在這家公司上班&#xff0c;每天都要加班&#xff0c;但看在錢給的比較多的份上&#xff0c;也就不太計較了。但萬萬沒想到5月一紙通知&#xff0c;所有人不準加班了&#xff0c;不僅加班費沒有了&#xff0c;薪資還要降…

基于springboot的大學生兼職信息管理系統(源碼+數據庫+文檔)

摘要 基于Spring Boot的大學生兼職信息管理系統是一個為大學生和兼職公司提供服務的平臺。通過該系統&#xff0c;大學生可以方便地尋找兼職工作機會&#xff0c;而兼職公司可以發布、管理和篩選合適的兼職信息。首先&#xff0c;系統采用了Spring Boot作為開發框架&#xff0…

Ubuntu22.04使能root用戶

一、背景 安裝Ubuntu22.04系統的時候&#xff0c;會要求創建一個用戶&#xff0c;并設置密碼。為方便后續行文&#xff0c;將此用戶稱為user_normal&#xff0c;此密碼稱為normal_pd 安裝Ubuntu22.04系統的時候&#xff0c;沒有出現任何和root有關的設置 Ubuntu22.04安裝完成…