默認本系列的的讀者已經初步熟悉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和shapew = 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 的opinit_op = tf.global_variables_initializer()# 在session中啟動graph.with tf.Session() as sess: # 啟動這個op sess.run(init_op) # ...現在可以運行使用variables的op...
但有時一個變量的初始化依賴于其他變量的初始化,但是為了確保初始化順序不能錯,可以使用initialized_value()。
以上這篇tensorflow之變量初始化(tf.Variable)使用詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答