一、由來
深度學習中需要使用大量的變數集,以往寫**我們只需要做全域性限量就可以了,但在tensorflow中,這樣做既不方便管理變數集,有不便於封裝,因此tensorflow提供了一種變數管理方法:變數作用域機制
二、兩個重要api
tf.get_variable(name, shape=none) # 根據給定的名字建立或返回乙個變數
tf.variable_scope(name_or_scope, reuse=none) # 將name_or_scope下的所有變數組成乙個命名空間
三、解讀
先說第乙個api
tf.get_variable(name, shape=none)這個方法在建立變數時與tf.variable()完全相同,區別在於它還會搜尋是否有同名變數;
1import
tensorflow as tf23
4 with tf.variable_scope('
const'):
5 a = tf.get_variable('
a', [1], initializer=tf.constant_initializer(1.))
再說第二個api
這個方法最重要的引數時reuse,有三個取值:none、true、tf.auto_reuse
reuse = none:繼承父類的reuse標誌
reuse = true:只能復用,不能建立
1import
tensorflow as tf23
4 with tf.variable_scope('
const'):
5 a = tf.get_variable('
a', [1])
67 with tf.variable_scope('
const
', reuse=tf.auto_reuse):
8 b = tf.get_variable('
a', [1])910
print(a==b) #
true
reuse = tf.auto_reuse:沒有就建立,有了就復用,這是最安全的用法
1import
tensorflow as tf23
4def
test():
5 with tf.variable_scope('
const
', reuse=tf.auto_reuse):
6 a = tf.get_variable('
a', [1])78
returna9
10 x = test() #
沒有就建立
11 y = test() #
有了就復用
12print(x==y) #
true
Tensorflow 模組的作用
1,在機器學習中,我們常常需要把訓練好的模型儲存起來,這樣在進行決策時直接將模型讀出,而不需要重新訓練模型,這樣就大大節約了時間。python提供的pickle模組就很好地解決了這個問題,它可以序列化物件並儲存到磁碟中,並在需要的時候讀取出來,任何物件都可以執行序列化操作。pickle模組中最常用的...
Tensorflow 變數的共享
tensorflow exp example sparse tensor classification train validate.py 當你需要train的過程中validate的時候,如果用placeholder來接收輸入資料 那麼乙個compute graph可以完成這個任務。如果你用的是t...
Tensorflow 變數的共享
tensorflow exp example sparse tensor classification train validate.py 當你需要train的過程中validate的時候,如果用placeholder來接收輸入資料 那麼乙個compute graph可以完成這個任務。如果你用的是t...