推薦一個快速查詢tensorflow API的網站:https://docs.w3cub.com/tensorflow~python/
一、指數衰減學習率
learning_rate = LEARNING_RATE_BASE*LEARNING_RATE_DECAY^(global_step/LEARNING_RATE_BATCH_SIZE)
LEARNING_RATE_BASE爲初始學習率,LEARNING_RATE_DECAY 爲學習率衰減率,global_step 記
錄了當前訓練輪數,爲不可訓練型參數。LEARNING_RATE_BATCH_SIZE=(總樣本數/BATCH_SIZE),是learning_rate的更新頻率。
tensorflow中的用法爲
LEARNING_RATE_BASE = 0.1 #最初學習率
LEARNING_RATE_DECAY = 0.99 #學習率衰減率
LEARNING_RATE_STEP = 1 #喂入多少輪BATCH_SIZE後,更新一次學習率,一般設爲:總樣本數/BATCH_SIZE
learning_rate = tf.train.exponential_decay(LEARNING_RATE_BASE, global_step, LEARNING_RATE_STEP, LEARNING_RATE_DECAY, staircase=True)
二、 tf.reduce_mean()
tf.reduce_mean 函數用於計算張量tensor沿着指定的數軸(tensor的某一維度)上的的平均值,主要用作降維或者計算tensor(圖像)的平均值。
tf.reduce_mean(
input_tensor, #待降維的tensor
axis=None, #指定的軸,如果不指定,則計算所有元素的均值
keepdims=None, #是否降維度,設置爲True,輸出的結果保持輸入tensor的形狀,設置爲False,輸出結果會降低維度
name=None, #操作的名稱
reduction_indices=None, #已棄用
keep_dims=None #已棄用
))
下面看官網給的例子:
x = tf.constant([[1., 1.], [2., 2.]])
tf.reduce_mean(x) # 1.5
tf.reduce_mean(x, 0) # [1.5, 1.5]
tf.reduce_mean(x, 1) # [1., 2.]
配上我在終端中運行的代碼對tensor及reduce_mean函數進行綜合理解:
shape中第一個數代表一維中元素的數量,第二個數代表二維中元素的數量。也可以將一維理解爲行,二維理解爲列,三維理解爲厚度。更好的理解請看該鏈接:https://blog.csdn.net/qq_34122708/article/details/86633492
三、tf.control_dependencies()
對兩個或多個節點建立依賴關係,官網例子:
with g.control_dependencies([a, b, c]):
# `d` and `e` will only run after `a`, `b`, and `c` have executed.
d = ...
e = ...
使用with關鍵字後,當運行d或e之前會先計算出a,b,c的值。