發布時間: 2018-12-20 23:38:13
7.1.1 實驗介紹
7.1.2 關于本實驗
本實驗通過幾個實例操作,了解計算圖的相關操作。
7.1.3 實驗目的
理解圖的相關操作。
7.1.4 實驗介紹
本例演示了如何建立圖,并設置為默認圖,使用 get_default_graph()方法獲取當前默認圖,驗證默認圖的設置生效。
演示獲取圖中的相關內容的操作。
7.1.5 實驗步驟
步驟 1 登陸華為云。
步驟 2 點擊右上方的控制臺。
步驟 3 選擇彈性云服務器,網頁中會顯示該彈性云的可進行的操作,選擇遠程登錄。即登錄到彈性云服務器。
步驟 4 輸入指令:ll,查看當前目錄下的文件。
步驟 5 輸入命令:vi graph.py,創建新的 Python 腳本。
步驟 6 輸入命令:i,進入編輯模式開始編輯,輸入腳本內容。
步驟 7 輸入命令:‘:wq!’,保存并退出。
步驟 8 輸入命令:cat graph.py,查看代碼。
步驟 9 運行測試。輸入命令:python3 graph.py。
7.2 實驗過程
# -*- coding: utf-8 -*- import numpy as np
import tensorflow as tf7.2.1 創建圖# 1 創建圖的方法
c = tf.constant(0.0)
g = tf.Graph()
with g.as_default(): c1 = tf.constant(0.0) print(c1.graph) print(g) print(c.graph)
g2 = tf.get_default_graph() print(g2)
tf.reset_default_graph()
g3 = tf.get_default_graph() print(g3)7.2.2 獲取 tensor# 2. 獲取 tensor
print(c1.name)
t = g.get_tensor_by_name(name = "Const:0") print(t)7.2.3 獲取 op# 3 獲 取 op
a = tf.constant([[1.0, 2.0]])
b = tf.constant([[1.0], [3.0]])
tensor1 = tf.matmul(a, b, name='exampleop') print(tensor1.name,tensor1)
test = g3.get_tensor_by_name("exampleop:0") print(test)
print(tensor1.op.name)
testop = g3.get_operation_by_name("exampleop") print(testop)
with tf.Session() as sess: test = sess.run(test) print(test)
test = tf.get_default_graph().get_tensor_by_name("exampleop:0")
print (test)7.2.4 獲取所有列表#4 獲取所有列表
#返回圖中的操作節點列表
tt2 = g.get_operations() print(tt2)7.2.5 獲取對象#5 獲取對象
tt3 = g.as_graph_element(c1) print(tt3)7.2.6 實驗結果<tensorflow.python.framework.ops.Graph object at 0x0000000009B17940>
<tensorflow.python.framework.ops.Graph object at 0x0000000009B17940>
<tensorflow.python.framework.ops.Graph object at 0x0000000002892DD8>
<tensorflow.python.framework.ops.Graph object at 0x0000000002892DD8>
<tensorflow.python.framework.ops.Graph object at 0x0000000009B17A90> Const:0
Tensor("Const:0", shape=(), dtype=float32)
exampleop:0 Tensor("exampleop:0", shape=(1, 1), dtype=float32) Tensor("exampleop:0", shape=(1, 1), dtype=float32)
exampleop
name: "exampleop" op: "MatMul" input: "Const" input: "Const_1" attr {
key: "T" value {
type: DT_FLOAT
}
}
attr {
key: "transpose_a" value {
b: false
}
}
attr {
key: "transpose_b" value {
b: false
}
}
2018-05-11 15:43:16.483655: I
T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:140]
Your CPU suppo
rts instructions that this TensorFlow binary was not compiled to use: AVX2 [[7.]]
Tensor("exampleop:0", shape=(1, 1), dtype=float32) [<tf.Operation 'Const' type=Const>] Tensor("Const:0", shape=(), dtype=float32)
7.3 實例描述
使用 tf.reset_default_graph 函數必須保證當前圖的資源已經完全釋放,否則會報錯??梢酝ㄟ^名字得到對應的元素。Get_tensor_by_name 可以獲取到圖里的張量。
利用 get_operation_by_name 獲取節點操作。利用 get_operations 函數獲取元素列表。
根據對象獲取元素即使用 tf.Graph.as_graph_element(),傳入一個對象,返回一個張量或者
OP。函數 as_graph_element 獲得了 c1 的真實張量對象,并賦給了變量 tt3。
本實驗只介紹了圖比較簡單的操作。