tensorflow之變數初始化(tf.Variable)使用詳解
阿新 • • 發佈:2020-02-07
預設本系列的的讀者已經初步熟悉tensorflow。
我們通過tf.Variable構造一個variable新增進圖中,Variable()建構函式需要變數的初始值(是一個任意型別、任意形狀的tensor),這個初始值指定variable的型別和形狀。通過Variable()建構函式後,此variable的型別和形狀固定不能修改了,但值可以用assign方法修改。
如果想修改variable的shape,可以使用一個assign op,令validate_shape=False.
通過Variable()生成的variables就是一個tensor,可以作為graph中其他op的輸入。另外,Tensor類過載的所有操作符都被轉載到此variables中,所以可以通過對變數呼叫方法,將節點新增到圖形中。
import tensorflow as tf #創造variable.<initial-value>指定這個variable的type和shape w = tf.Variable(<initial-value>,name=<optional-name>) # 接著就可以把這個variable當做tensor運用在graph中. y = tf.matmul(w,...another variable or tensor...) z = tf.sigmoid(w + y) # 通過`assign()`和相關方法給這個w賦值 w.assign(w + 1.0) w.assign_add(1.0)
一個graph啟動之前所有的variables必須都要賦值,實際上,變數初始化操作op只是一個賦值op,是將variables的初始值賦給variables自身。
# 在session中啟動graph. with tf.Session() as sess: # variable初始化. sess.run(w.initializer) # ...現在可以執行使用'w'的op...
給variables初始化最簡單的方法就是global_variables_initializer(),可以直接初始化所有variables:
# 初始化所有variables 的op init_op = tf.global_variables_initializer() # 在session中啟動graph. with tf.Session() as sess: # 啟動這個op sess.run(init_op) # ...現在可以執行使用variables的op...
但有時一個變數的初始化依賴於其他變數的初始化,但是為了確保初始化順序不能錯,可以使用initialized_value()。
以上這篇tensorflow之變數初始化(tf.Variable)使用詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。