1. 程式人生 > >sess.run(tf.global_variables_initializer()) 做了什麼?

sess.run(tf.global_variables_initializer()) 做了什麼?

  當我們訓練自己的神經網路的時候,無一例外的就是都會加上一句 sess.run(tf.global_variables_initializer()) ,這行程式碼的官方解釋是 初始化模型的引數。那麼,它到底做了些什麼?

global_variables_initializer 返回一個用來初始化 計算圖中 所有global variable的 op。
這個op 到底是啥,還不清楚。
函式中呼叫了 variable_initializer() 和 global_variables()
global_variables() 返回一個 Variable list ,裡面儲存的是 gloabal variables。
variable_initializer() 將 Variable list 中的所有 Variable 取出來,將其 variable.initializer 屬性做成一個 op group。
然後看 Variable 類的原始碼可以發現, variable.initializer 就是一個 assign op。
所以: sess.run(tf.global_variables_initializer()) 就是 run了 所有global Variable 的 assign op,這就是初始化引數的本來面目。