tf.variable() :一般變數用這種方式定義。 * 可以選擇 trainable 型別 *
tf.get_variable() :一般都是和 tf.variable_scope() 配合使用,從而實現變數共享的功能。 * 可以選擇 trainable 型別 *
【注意:】tf.get_variable()和tf.variable()不是一回事!!兩個的區別有好幾處:
①比如,tf.variable()在定義的時候必須初始化,而tf.get_variable()定義的時候可以先不進行初始化操作。
②想要進行變數共享,必須使用tf.get_variable()實現,搭配命名空間,以及reuse關鍵字的使用,就可以實現變數的共享;而tf.variable()每次都會生成乙個新的變數。
佔位符[tf.placeholder()]並不是變數,待輸入訓練常量。** trainable==false **
變數的初始化操作的幾種方式:
1.在定義的時候直接初始化,比如
b = tf.get_variable("b", b.shape, trainable=false, initializer=tf.constant_initializer(b))
2.在會話中使用sess.run()進行初始化,比如
sess.run(tf.global_variables_initializer()) #初始化全域性變數
sess.run(tf.local_variables_initializer()) #初始化本地變數
3.如果只想要初始化一部分指定變數,使用:
sess.run(tf.variables_initializer(var_list))
其中,var_list是需要初始化的變數列表。
變數在使用前一定要進行初始化,且變數的初始化必須在模型的其它操作執行之前完成。變數的初始化有三種方式,如程式2-13所示:
程式2-13:
初始化全部變數、初始化變數的子集以及初始化單個變數。首先,global_variables_initializer()方法是不管全域性有多少個變數,全部進行初始化,是最簡單也是最常用的一種方式;variables_initializer()是初始化變數的子集,相比於全部初始化化的方式更加節約記憶體;variable()是初始化單個變數,函式的引數便是要初始化的變數內容。通過上述的三種方式,我們便可以實現變數的初始化,放心的使用變數了。
初始化三種方式
陣列的初始化方式總共有三種 靜態初始化 動態初始化 預設初始化。下面針對這三種方式分別講解。1.靜態初始化 除了用new關鍵字來產生陣列以外,還可以直接在定義陣列的同時就為陣列元素分配空間並賦值。示例7 4 靜態初始化陣列 inta 靜態初始化基本型別陣列 man mans 靜態初始化引用型別陣列 ...
變數初始化的方式
當物件在建立時獲得了乙個特定的值,我們說這個物件被初始化了。用於初始化變數的值可以是任意複雜的表示式。當一次定義了兩個或多個變數時,物件的名字在定義後就馬上可以使用了。例如我們可以這樣使用 使用剛剛定義的price初始化discount double price 109.99,discount pr...
C 變數(三) 變數的初始化
前面介紹了什麼是變數,以及變數的命名與定義,現在我們來了解一下變數的初始化。我們都知道,在定義乙個變數時,需要明確它的型別和變數名,其實,有時候我們也要為變數設定乙個初始值。這樣在變數定義時就已被賦值的變數,就是初始化的變數,這個賦值操作稱為初始化。c 語言支援兩種初始化的格式 copy initi...