您好,登錄后才能下訂單哦!
這篇文章主要講TensorFlow中的Session的用法以及Variable。
Session會(huì)話控制
Session是TensorFlow為了控制和輸出文件的執(zhí)行語句,運(yùn)行session.run()就能獲得運(yùn)算結(jié)果或者部分運(yùn)算結(jié)果。我們?cè)谶@里使用一個(gè)簡單的矩陣相乘的例子來解釋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è)簡單的加法運(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變量詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。