1. 程式人生 > >tensorflow中的tensor和session

tensorflow中的tensor和session

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}))