tensorflow學習(3)variable和placeholder使用.

在tensorflow中,定義了某字符串是變量,它纔是變量

定義的語法

state = tf.Variable()

import tensorflow as tf

state = tf.Variable(0, name='counter')

# 定義常量 one
one = tf.constant(1)

# 定義加法步驟 (注: 此步並沒有直接計算)
new_value = tf.add(state, one)

# 將 State 更新成 new_value
update = tf.assign(state, new_value)

如果在tensorflow中設定了變量,那麼變量的初始化是非常重要的!!!,所以定義了變量之後,一定要進行初始化操作.,

 init = tf.initialize_all_variables() .

到這裏變量還是沒有被激活,需要在sess裏面,sess.run(init)後,進一步激活init這一步.

# 如果定義 Variable, 就一定要 initialize
# init = tf.initialize_all_variables() # tf 馬上就要廢棄這種寫法
init = tf.global_variables_initializer()  # 替換成這樣就好
 
# 使用 Session
with tf.Session() as sess:
    sess.run(init)
    for _ in range(3):
        sess.run(update)
        print(sess.run(state))

注意:print(state)是不起任何作用的!

一定要把sess的指針指向state後再進行print 才能得到想要的值.

 

placeholder的使用.

placeholder是tensorflow中的佔位符,是用於暫時存儲變量的.

tensorflow如果想要從外部傳入data,那就需要使用tf.placeholder(),然後以如下形式將數據進行傳入.

sess.run(***, feed_dict={input: **}).

示例:首先定義佔位符和參數值:

import tensorflow as tf

#在 Tensorflow 中需要定義 placeholder 的 type ,一般爲 float32 形式
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)

# mul = multiply 是將input1和input2 做乘法運算,並輸出爲 output 
ouput = tf.multiply(input1, input2)

接下來,傳值的工作交給了sess.run(),需要傳入的值放在了feed_dict = {}裏面,並一一對應input的placeholder的值.

with tf.Session() as sess:
    print(sess.run(ouput, feed_dict={input1: [7.], input2: [2.]}))

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章