TensorFlow Session會(huì)話控制&Variable變量詳解
這篇文章主要講TensorFlow中的Session的用法以及Variable。
Session會(huì)話控制
Session是TensorFlow為了控制和輸出文件的執(zhí)行語句,運(yùn)行session.run()就能獲得運(yùn)算結(jié)果或者部分運(yùn)算結(jié)果。我們?cè)谶@里使用一個(gè)簡(jiǎn)單的矩陣相乘的例子來解釋Session的兩個(gè)用法。
首先我們要加載TensorFlow并建立兩個(gè)矩陣以及兩個(gè)矩陣所做的運(yùn)算。這里我們建立一個(gè)一行兩列的matrix1和一個(gè)兩行一列的matrix2,讓它們做矩陣的乘法。tf.matmul相當(dāng)于numpy中的dot方法,都是做矩陣的product。
import tensorflow as tf matrix1 = tf.constant([[2, 2]]) matrix2 = tf.constant([[2], [2]]) product = tf.matmul(matrix1, matrix2)
接下來我們使用第一種會(huì)話控制Session來激活product并得到計(jì)算結(jié)果:
sess = tf.Session() result = sess.run(product) print(result) sess.close()
運(yùn)行結(jié)果為:[[8]]
還有另外一種Session的打開模式同樣可以激活product:
with tf.Session() as sess: result2 = sess.run(product) print(result2)
運(yùn)行結(jié)果同樣是[[8]]。在這里我們不需要我們單獨(dú)做sess.close()的操作。
variable變量
與python的變量不同,在TensorFlow中如果我們要定義一個(gè)變量,必須使用tf.Variable()來定義它才是個(gè)變量,括號(hào)中可以包含的參數(shù)有變量的值,變量的名稱等。這里我們用一個(gè)簡(jiǎn)單的加法運(yùn)算來解釋變量的用法。
首先導(dǎo)入tensorflow并定義變量state, 常量one,以及運(yùn)算方法tf.add, tf.assign
import tensorflow as tf state = tf.Variable(0, name='counter') # 輸出變量名 print(state.name) one = tf.constant(1) new_value = tf.add(state, one) # 將new_value加載到state里面,這時(shí)state的值就是new_value update = tf.assign(state, new_value)
我們可以將變量打印出來得到變量的信息:
init = tf.global_variables_initializer()
接下來我們就要用Session來將變量激活進(jìn)行運(yùn)算,并打印出state的結(jié)果:
with tf.Session() as sess: sess.run(init) for _ in range(3): sess.run(update) print(sess.run(state))
這里我們讓update運(yùn)行3次,也就是做3次加法,運(yùn)行結(jié)果為:

以上這篇TensorFlow Session會(huì)話控制&Variable變量詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)文件批量編碼轉(zhuǎn)換及注意事項(xiàng)
本文通過實(shí)例代碼給大家介紹了python實(shí)現(xiàn)文件批量編碼轉(zhuǎn)換及注意事項(xiàng),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-10-10
為Python的Tornado框架配置使用Jinja2模板引擎的方法
Jinja2是人氣Web框架Flask中的內(nèi)置模板引擎,而且與Django的模板引擎比較類似,這里我們就來看一下為Python的Tornado框架配置使用Jinja2模板引擎的方法2016-06-06
python實(shí)戰(zhàn)之90行代碼寫個(gè)猜數(shù)字游戲
這篇文章主要介紹了python實(shí)戰(zhàn)之90行代碼寫個(gè)猜數(shù)字,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04
python OpenCV 實(shí)現(xiàn)高斯濾波詳解
這篇文章主要介紹了Python+OpenCV 實(shí)現(xiàn)高斯濾波的過程,關(guān)于高斯濾波的解釋,它是一種線性平滑濾波,適用于消除高斯噪聲,具體實(shí)現(xiàn)過程跟隨小編一起看看吧2021-10-10
python實(shí)現(xiàn)合并兩個(gè)有序列表的示例代碼
這篇文章主要介紹了python實(shí)現(xiàn)合并兩個(gè)有序列表的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
python?scapy抓包獲取udp并轉(zhuǎn)發(fā)的操作步驟
這篇文章主要介紹了python?scapy抓包獲取udp并轉(zhuǎn)發(fā)的操作步驟,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01

