tensorflow中的tf.Variable()


數據流圖有兩大組成部分:

  • Tensor對象
  • Op對象

這二者的特性都是不可變的(immutable),在數據流圖中對於普通Tensor來說,經過一次Op操作之后,就會轉化為另一個Tensor。當前一個Tensor的使命完成之后就會被系統回收。

但在機器學習任務中,某些參數(eg:模型參數)可能需要長期保存,他們的值還需要不斷迭代更新,也就是,它必須是可變的。

為了處理這個問題,所以就有了變量(Variable)

Variable是一個常駐內存,不會被輕易回收的Tensor。

Variable對象通過tf.Variable()即可完成

import tensorflow as tf

my_state = tf.Variable(0, name = "counter") #創建一個Op變量my_state,並初始化為0
one = tf.constant(1)   #創建一個Op常量賦值為1
new_value = tf.add(my_state, one)
update = tf.assign(my_state, new_value) #通過assign()函數,將new_value的值賦給my_state.
init_Op = tf.global_variables_initializer() #tf.global_variables_initializer()會返回一個操作,初始化計算圖中所有Variable對象
#------------------------------------------------
#以上部分為數據流圖的構想,只有在構建會話Session()之后,構想才給予實施。

with tf.Session() as sess:
    sess.run(init_Op)  #初始化操作
    print(sess.run(my_state))
    for _ in range(3):   #下划線變量"_" 可理解為“垃圾箱變量”
        sess.run(update)
        print(sess.run(my_state))
0
1
2
3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM