tensorflow中的tensor和session
阿新 • • 發佈:2018-12-13
Tensot(張量)
張量:tensorflow內部的計算都基於張量,使用tf.tensor類的示例表示張量
# 張量 #引入tensorflow模組 import tensorflow as tf #建立0階tensor t0 = tf.constant(3,dtype=tf.int32) #建立1階tensor t1 = tf.constant([3.,4.1,5.2],dtype=tf.float32) #建立2階tensor t2 = tf.constant([['dog','cat'],['red','green']],dtype=tf.string) #建立3階tensor t3 = tf.constant([[[5],[6],[7]],[[4],[3],[2]]]) #列印 print直接列印只能打印出屬性定義,不能打印出值,需經過session才能打印出值 print(t0) print(t1) print(t2) print(t3) #session sess = tf.Session() print(sess.run(t0)) print(sess.run(t1)) print(sess.run(t2)) print(sess.run(t3))
未session時的輸出效果
session後的輸出效果
Session
Tensorflow底層使用C++實現,可保證計算效率,並使用tf.Session類連線客戶端程式與C++執行。上層的python java等程式碼用來設計定義模型,構建graph,最後通過tf.session.run()方法傳遞給底層執行。
# 張量 #引入tensorflow模組 import tensorflow as tf #建立兩個tensor節點 用placeholder佔位,這樣在執行時值可以更改 a = tf.placeholder(tf.float32) b = tf.placeholder(tf.float32) #建立一個adder節點 執行+操作 adder_node = a + b # *操作 add_and_triple = adder_node*3 #列印節點 print(a) print(b) print(adder_node) #執行 後面的dict引數是為站位Tensor提供的輸入資料 sess = tf.Session() print(sess.run(adder_node,{a:3,b:4.5})) print(sess.run(adder_node,{a:[1,3],b:[2,4]})) print(sess.run(add_and_triple,{a:3,b:4.5}))