TensorFlow使用Graph的基本操作的實(shí)現(xiàn)
1.創(chuàng)建圖
在tensorflow中,一個(gè)程序默認(rèn)是建立一個(gè)圖的,除了系統(tǒng)自動(dòng)建立圖以外,我們還可以手動(dòng)建立圖,并做一些其他的操作。
下面我們使用tf.Graph函數(shù)建立圖,使用tf.get_default_graph函數(shù)來獲取圖,使用reset_default_graph對(duì)圖進(jìn)行重置。
import tensorflow as tf import numpy as np c = tf.constant(1.5) g = tf.Graph() with g.as_default(): c1 = tf.constant(2.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)
上述的代碼運(yùn)行結(jié)果如下所示:

根據(jù)上述的運(yùn)行結(jié)果,c是在剛開始的默認(rèn)圖中建立的,所以打印的結(jié)果就是13376A1FE10,和g2獲取的默認(rèn)圖的值是一樣的,然后使用tf.Graph建立了一個(gè)新的圖,并添加了變量c1,最后又對(duì)圖進(jìn)行了重置,替代了原來的默認(rèn)圖。
在使用reset_default_graph()函數(shù)的時(shí)候,要保證當(dāng)前圖中資源都已經(jīng)全部進(jìn)行了釋放,否則將會(huì)報(bào)錯(cuò)。
2.獲取張量
我們可以在圖中通過名字得到其對(duì)應(yīng)的元素,比如獲取圖中的變量和OP等元素。
import tensorflow as tf import numpy as np g = tf.Graph() with g.as_default(): c1 = tf.constant(2.5, name='c1_constant') c2 = tf.Variable(1.5, dtype=tf.float32, name='c2_constant') add = tf.multiply(c1, c2, name='op_add') c_1 = g.get_tensor_by_name(name='c1_constant:0') c_2 = g.get_tensor_by_name(name='c2_constant:0') c_3 = g.get_tensor_by_name(name='op_add:0') print(c_1) print(c_2) print(c_3)

在進(jìn)行測(cè)試時(shí),我們?yōu)樵靥砑恿俗兞棵?,在設(shè)置變量名的時(shí)候,設(shè)置好的名字會(huì)自動(dòng)添加后面的:0字符。一般我們可以將名字打印出來,在將打印好的名字進(jìn)行回填。
3.獲取節(jié)點(diǎn)操作
獲取節(jié)點(diǎn)操作OP的方法和獲取張量的方法非常類似,使用get_operation_by_name.下面是運(yùn)行實(shí)例:
import tensorflow as tf
import numpy as np
a = tf.constant([[1.0, 2.0]])
b = tf.constant([[1.0], [3.0]])
tensor_1 = tf.matmul(a, b, name='matmul_1')
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
t1 = tf.get_default_graph().get_operation_by_name(name='matmul_1')
t2 = tf.get_default_graph().get_tensor_by_name(name='matmul_1:0')
print(t1)
print('t1: ', sess.run(t1))
print('t2: ', sess.run(t2))
在上述的代碼中,定義了一個(gè)OP操作,命名為matmul_1,在運(yùn)行時(shí)我們將op打印出來,在使用名字后面加上:0我們就能得到OP運(yùn)算的結(jié)果的tensor,注意這兩者的區(qū)別。
我們還可以通過get_opreations函數(shù)獲取圖中的所有信息。此外,我們還可以使用tf.Grapg.as_graph_element函數(shù)將傳入的對(duì)象返回為張量或者op。該函數(shù)具有驗(yàn)證和轉(zhuǎn)換功能。
到此這篇關(guān)于TensorFlow使用Graph的基本操作的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)TensorFlow Graph操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python輪播圖與導(dǎo)航欄功能的實(shí)現(xiàn)流程全講解
這篇文章主要介紹了Python項(xiàng)目輪播圖功能實(shí)現(xiàn)和導(dǎo)航欄的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09
Python使用qrcode二維碼庫(kù)生成二維碼方法詳解
這篇文章主要介紹了Python使用qrcode二維碼庫(kù)生成二維碼方法詳解,需要的朋友可以參考下2020-02-02
windows下安裝python paramiko模塊的代碼
windows下安裝python paramiko模塊,有需要的朋友可以參考下2013-02-02
TensorFlow實(shí)現(xiàn)簡(jiǎn)單的CNN的方法
這篇文章主要介紹了TensorFlow實(shí)現(xiàn)簡(jiǎn)單的CNN的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
基于python3抓取pinpoint應(yīng)用信息入庫(kù)
這篇文章主要介紹了基于python3抓取pinpoint應(yīng)用信息入庫(kù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
詳解Python網(wǎng)絡(luò)爬蟲功能的基本寫法
這篇文章主要介紹了Python網(wǎng)絡(luò)爬蟲功能的基本寫法,網(wǎng)絡(luò)爬蟲,即Web Spider,是一個(gè)很形象的名字。把互聯(lián)網(wǎng)比喻成一個(gè)蜘蛛網(wǎng),那么Spider就是在網(wǎng)上爬來爬去的蜘蛛,對(duì)網(wǎng)絡(luò)爬蟲感興趣的朋友可以參考本文2016-01-01
python獲取當(dāng)前文件路徑以及父文件路徑的方法
今天小編就為大家分享一篇python獲取當(dāng)前文件路徑以及父文件路徑的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
關(guān)于Python中異常(Exception)的匯總
異常是指程序中的例外,違例情況。異常機(jī)制是指程序出現(xiàn)錯(cuò)誤后,程序的處理方法。當(dāng)出現(xiàn)錯(cuò)誤后,程序的執(zhí)行流程發(fā)生改變,程序的控制權(quán)轉(zhuǎn)移到異常處理。下面這篇文章主要匯總了關(guān)于Python中異常(Exception)的相關(guān)資料,需要的朋友可以參考下。2017-01-01

