2 回答

TA貢獻1775條經驗 獲得超8個贊
顯然,要訪問操作(或張量),我們確實需要對它進行一些引用。恕我直言,一種標準的解決方法是在類中構建圖形并創(chuàng)建類的某些張量屬性并通過對象訪問它們。
或者,如果您更傾向于函數式方法,那么比分別返回所有相關操作和張量更好的方法是返回 dict(或命名元組)。
此外,還有一些專門的函數可以按名稱返回操作:例如get_operation_by_name
.
作為這個問題的旁白,您可能還想嘗試急切執(zhí)行,這是必不可少的。

TA貢獻1898條經驗 獲得超8個贊
使用 op 函數時會發(fā)生 3 件事:
創(chuàng)建計算節(jié)點并將其添加到默認圖中
將您的輸入設置為節(jié)點輸入張量
將節(jié)點輸出張量設置為返回值
例如a = tf.add(b, c, name='add')
,
將帶有 op 的節(jié)點添加
Add
到默認圖形中,名稱為“add”將 b 和 c 設置為節(jié)點輸入張量
將名稱為“add:0”的節(jié)點輸出設置為
所以你可以通過 訪問節(jié)點sess.graph
,有很多函數可以訪問節(jié)點,比如 get_operation_by_name。
此外,您可以通過sess.graph_def
protobuf 序列化圖來操作圖,您可以在 tensorflow 源代碼中找到 protobuf 定義,在那里可以找到tensorflow/core/framework
一些 .proto 文件。
添加回答
舉報