偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

高級(jí)API、異構(gòu)圖:谷歌發(fā)布TF-GNN,在TensorFlow創(chuàng)建圖神經(jīng)網(wǎng)絡(luò)

新聞 深度學(xué)習(xí)
今天,TensorFlow 官方博客發(fā)布了 TensorFlow Graph Neural Networks(TensorFlow GNN)庫(kù) ,這個(gè)庫(kù)使得用戶(hù)在使用 TensorFlow 時(shí)能夠輕松處理圖結(jié)構(gòu)數(shù)據(jù)。

  [[435974]]

今天,TensorFlow 官方博客發(fā)布了 TensorFlow Graph Neural Networks(TensorFlow GNN)庫(kù) ,這個(gè)庫(kù)使得用戶(hù)在使用 TensorFlow 時(shí)能夠輕松處理圖結(jié)構(gòu)數(shù)據(jù)。

此前,TensorFlow GNN 的早期版本已經(jīng)在谷歌的各種應(yīng)用中使用,包括垃圾郵件和異常檢測(cè)、流量估計(jì)、YouTube 內(nèi)容標(biāo)記等。特別是,考慮到谷歌數(shù)據(jù)種類(lèi)繁多,該庫(kù)在設(shè)計(jì)時(shí)就考慮到了異構(gòu)圖。

高級(jí)API、異構(gòu)圖:谷歌發(fā)布TF-GNN,在TensorFlow創(chuàng)建圖神經(jīng)網(wǎng)絡(luò)

項(xiàng)目地址:https://github.com/tensorflow/gnn

為何使用 GNN?

無(wú)論是在現(xiàn)實(shí)世界中,還是在我們?cè)O(shè)計(jì)的系統(tǒng)中,圖無(wú)處不在。一組對(duì)象或是不同的人以及他們之間的聯(lián)系,通常可以用圖來(lái)描述。通常情況下,機(jī)器學(xué)習(xí)中的數(shù)據(jù)是結(jié)構(gòu)化或關(guān)系型的,因此也可以用圖來(lái)描述。雖然 GNN 的基礎(chǔ)研究已經(jīng)有幾十年的歷史,但近幾年才取得一些進(jìn)展,包括在交通預(yù)測(cè)、假新聞檢測(cè)、疾病傳播建模、物理模擬,以及理解為什么分子會(huì)有氣味等。

高級(jí)API、異構(gòu)圖:谷歌發(fā)布TF-GNN,在TensorFlow創(chuàng)建圖神經(jīng)網(wǎng)絡(luò)

圖可以為不同類(lèi)型的數(shù)據(jù)進(jìn)行關(guān)系建模,包括網(wǎng)頁(yè)(左)、社交關(guān)系(中)或分子(右)。

怎樣定義圖呢?簡(jiǎn)單來(lái)講,圖表示一組實(shí)體(節(jié)點(diǎn)或頂點(diǎn))之間的關(guān)系(邊)。我們可以描述每個(gè)節(jié)點(diǎn)、邊或整個(gè)圖,從而將信息存儲(chǔ)在圖的每一部分中。此外,我們可以賦予圖邊緣方向性來(lái)描述信息或信息流。

GNN 可以用來(lái)回答關(guān)于這些圖的多個(gè)特征問(wèn)題。GNN 可用于節(jié)點(diǎn)級(jí)任務(wù),對(duì)圖的節(jié)點(diǎn)進(jìn)行分類(lèi),并預(yù)測(cè)圖中的分區(qū)和相關(guān)性,類(lèi)似于圖像分類(lèi)或分割。最后,我們可以在邊緣級(jí)別使用 GNN 來(lái)發(fā)現(xiàn)實(shí)體之間的連接。

TensorFlow GNN

TF-GNN(TensorFlow GNN) 提供了在 TensorFlow 中實(shí)現(xiàn) GNN 模型的構(gòu)建塊。除了建模 API 之外,該庫(kù)還為處理圖數(shù)據(jù)提供了可用工具,包括基于張量的圖數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)處理 pipeline 和一些供用戶(hù)快速入門(mén)的示例模型。

高級(jí)API、異構(gòu)圖:谷歌發(fā)布TF-GNN,在TensorFlow創(chuàng)建圖神經(jīng)網(wǎng)絡(luò)

TF-GNN 工作流程組件

TF-GNN 庫(kù)的初始版本包含許多實(shí)用程序和功能,供初學(xué)者和有經(jīng)驗(yàn)的用戶(hù)使用,包括:

  • 高級(jí) keras 風(fēng)格的 API 用于創(chuàng)建 GNN 模型,可以很容易地與其他類(lèi)型的模型組合。GNN 通常與排序、深度檢索結(jié)合使用或與其他類(lèi)型的模型(圖像、文本等)混合使用;
  • 定義良好的模式用來(lái)聲明圖拓?fù)浣Y(jié)構(gòu),以及驗(yàn)證工具。該模式描述了其訓(xùn)練數(shù)據(jù)的大小,并用于指導(dǎo)其他工具;
  • GraphTensor 復(fù)合張量類(lèi)型,可以用來(lái)保存圖數(shù)據(jù),也可以進(jìn)行批處理,并具有可用的圖操作例程;
  • GraphTensor 結(jié)構(gòu)操作庫(kù):在節(jié)點(diǎn)和邊緣上進(jìn)行各種有效的 broadcast 和 pooling 操作,以及提供相關(guān)操作的工具;標(biāo)準(zhǔn) baked 卷積庫(kù),機(jī)器學(xué)習(xí)工程師、研究人員可以對(duì)其輕松擴(kuò)展;高級(jí) API 可以幫助工程師快速構(gòu)建 GNN 模型而不必?fù)?dān)心細(xì)節(jié);
  • 模型可以從圖訓(xùn)練數(shù)據(jù)編碼,以及用于將此數(shù)據(jù)解析為數(shù)據(jù)結(jié)構(gòu)的庫(kù)中提取各種特征。

示例

下面示例使用 TF-GNN Keras API 構(gòu)建了一個(gè)模型,該模型可以根據(jù)觀看內(nèi)容和喜歡的類(lèi)型向用戶(hù)推薦電影。

完成這項(xiàng)任務(wù)使用 ConvGNNBuilder 方法來(lái)指定邊的類(lèi)型和節(jié)點(diǎn)配置,即對(duì)邊使用 WeightedSumConvolution(定義如下):

  1. import tensorflow as tf 
  2.     import tensorflow_gnn as tfgnn 
  3.  
  4.     # Model hyper-parameters: 
  5.     h_dims = {'user'256'movie'64'genre'128
  6.  
  7.     # Model builder initialization: 
  8.     gnn = tfgnn.keras.ConvGNNBuilder( 
  9.       lambda edge_set_name: WeightedSumConvolution(), 
  10.       lambda node_set_name: tfgnn.keras.layers.NextStateFromConcat( 
  11.          tf.keras.layers.Dense(h_dims[node_set_name])) 
  12.     ) 
  13.  
  14.     # Two rounds of message passing to target node sets: 
  15.     model = tf.keras.models.Sequential([ 
  16.         gnn.Convolve({'genre'}),  # sends messages from movie to genre 
  17.         gnn.Convolve({'user'}),  # sends messages from movie and genre to users 
  18.         tfgnn.keras.layers.Readout(node_set_name="user"), 
  19.         tf.keras.layers.Dense(1
  20.     ]) 

有時(shí)我們希望 GNN 性能更強(qiáng)大,例如,在上個(gè)示例中,我們可能希望模型在給出推薦電影時(shí)可以同時(shí)給出權(quán)重。下面代碼片段中定義了一個(gè)更高級(jí)的 GNN,它帶有自定義圖卷積,以及帶有權(quán)重邊。下面代碼定義了 WeightedSumConvolution 類(lèi)可以將邊值池化為所有邊的權(quán)重總和:

  1. class WeightedSumConvolution(tf.keras.layers.Layer): 
  2.   """Weighted sum of source nodes states.""" 
  3.  
  4.   def call(self, graph: tfgnn.GraphTensor, 
  5.            edge_set_name: tfgnn.EdgeSetName) -> tfgnn.Field: 
  6.     messages = tfgnn.broadcast_node_to_edges( 
  7.         graph, 
  8.         edge_set_name, 
  9.         tfgnn.SOURCE, 
  10.         feature_name=tfgnn.DEFAULT_STATE_NAME) 
  11.     weights = graph.edge_sets[edge_set_name]['weight'
  12.     weighted_messages = tf.expand_dims(weights, -1) * messages 
  13.     pooled_messages = tfgnn.pool_edges_to_node( 
  14.         graph, 
  15.         edge_set_name, 
  16.         tfgnn.TARGET, 
  17.         reduce_type='sum'
  18.         feature_value=weighted_messages) 
  19.     return pooled_messages 

請(qǐng)注意,即使卷積是在只考慮源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)的情況下編寫(xiě)的,TF-GNN 仍可確保它適用并可以無(wú)縫處理異構(gòu)圖(具有各種類(lèi)型的節(jié)點(diǎn)和邊)。

安裝

這是目前安裝 tensorflow_gnn 的唯一方法。強(qiáng)烈建議使用虛擬環(huán)境。

Clone tensorflow_gnn:

  1. $> git clone https://github.com/tensorflow/gnn.git tensorflow_gnn 

安裝 TensorFlow:

  1. $> pip install tensorflow 

安裝 Bazel:Bazel 需要構(gòu)建包的源代碼。安裝步驟請(qǐng)參考:https://docs.bazel.build/versions/main/install.html

安裝 GraphViz:這個(gè)包使用 GraphViz 作為可視化工具,安裝因操作系統(tǒng)而異,例如 Ubuntu:

  1. $> sudo apt-get install graphviz graphviz-dev 

安裝 tensorflow_gnn:

  1. $> cd tensorflow_gnn && python3 -m pip install . 

 

責(zé)任編輯:張燕妮 來(lái)源: 機(jī)器之心Pro
相關(guān)推薦

2024-02-07 17:08:42

2021-07-28 15:35:58

谷歌神經(jīng)網(wǎng)絡(luò)AI

2022-03-02 14:53:34

人工智能神經(jīng)網(wǎng)絡(luò)

2021-10-26 09:00:00

圖形機(jī)器學(xué)習(xí)深度學(xué)習(xí)

2023-02-09 08:53:26

GNN神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)

2022-05-25 14:21:01

神經(jīng)網(wǎng)絡(luò)框架技術(shù)

2021-09-15 09:15:54

神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)圖形

2021-09-07 17:37:04

人工智能機(jī)器學(xué)習(xí)技術(shù)

2018-03-22 13:34:59

TensorFlow神經(jīng)網(wǎng)絡(luò)

2022-03-25 15:07:05

神經(jīng)網(wǎng)絡(luò)AI數(shù)據(jù)

2021-01-08 11:23:08

IP核

2020-09-09 10:20:48

GraphSAGE神經(jīng)網(wǎng)絡(luò)人工智能

2023-05-04 07:39:14

圖神經(jīng)網(wǎng)絡(luò)GNN

2017-08-28 21:31:37

TensorFlow深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2017-06-20 14:41:12

google神經(jīng)網(wǎng)絡(luò)

2019-09-04 15:07:15

代碼開(kāi)發(fā)開(kāi)源

2021-01-25 19:49:11

GNN神經(jīng)網(wǎng)絡(luò)圖像

2018-08-27 17:05:48

tensorflow神經(jīng)網(wǎng)絡(luò)圖像處理

2023-10-29 18:08:33

GPU神經(jīng)網(wǎng)絡(luò)CPU

2018-07-03 16:10:04

神經(jīng)網(wǎng)絡(luò)生物神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)