close

上次我們產生一個具浮點數特性的 tensor,

node1 = tf.constant(3.0, tf.float32)

並且嘗試利用下面的語法將它的值印出,

print(node1)

會發現跟我們預期的結果不同,並不是輸出 3.0 這個值,而是下面的輸出結果。

Tensor("Const:0", shape=(), dtype=float32)

從輸出結果告訴我們,存在一個常數浮點數的 tensor,維度是 0,資料型別是 float32。

該如何印出我們想要的值,這時候我們得借助 Session 這個 class 來幫忙我們印出正確的值。

 

在 TensorFlow 官方網站上,Session的定義如下:

A Session object encapsulates the environment in which Operation objects are executed, and Tensor objects are evaluated.

當我們的程式和 TensorFlow 建立聯繫時,我們需要利用 Session 來建立執行我們程式碼操作的環境。

於是為了印出 node1 的輸出,程式碼便會藉由 Session 來呈現我們想要的結果 3.0

import tensorflow as tf

node1 = tf.constant(3.0, tf.float32)

sess = tf.Session()

print (session.run(node1))

值得注意的是,當我們使用完 tf.Session 時,記得釋放其資源。以下是兩種不同的 Session 的釋放資源寫法:

1. 方法一:利用 sess.close() 來釋放資源

# Using the `close()` method.
sess = tf.Session()
sess.run(...)
sess.close()

2. 方法二:藉由 context manager 來管理

# Using the context manager.
with tf.Session() as sess:
    #需要內縮

    sess.run(...)

 

arrow
arrow
    文章標籤
    tensorflow Session
    全站熱搜

    MingHsiangSu 發表在 痞客邦 留言(0) 人氣()