應用自定義學習率變量在Tensorflow,之後我得到我的損失來看,我把它給了優化,並增加了必要的分化和更新方面的計算圖:在Tensorflow
global_counter = tf.Variable(0, dtype=DATA_TYPE, trainable=False)
learning_rate = tf.train.exponential_decay(
INITIAL_LR, # Base learning rate.
global_counter, # Current index into the dataset.
DECAY_STEP, # Decay step.
DECAY_RATE, # Decay rate.
staircase=True)
optimizer = tf.train.MomentumOptimizer(learning_rate, 0.9).minimize(network.finalLoss, global_step=global_counter)
feed_dict = {TRAIN_DATA_TENSOR: samples, TRAIN_LABEL_TENSOR: labels}
results = sess.run([optimizer], feed_dict=feed_dict)
我想對這個過程進行一個小的修改。我想爲網絡中的每個不同參數都調整learning_rate
。例如,讓網絡中的兩個不同的可訓練參數A
和B
,並讓dL/dA
和dL/dB
參數相對於損失的偏導數。動量優化更新變量:
Ma <- 0.9*Ma + learning_rate*dL/dA
A <- A - Ma
Mb <- 0.9*Mb + learning_rate*dL/dB
B <- B - Mb
我要修改此爲:
Ma <- 0.9*Ma + ca*learning_rate*dL/dA
A <- A - Ma
Mb <- 0.9*Mb + cb*learning_rate*dL/dB
B <- B - Mb
凡ca
和cb
有特殊學習速率爲尺度不同的參數。據我所知,Tensorflow有compute_gradients
和apply_gradients
我們可以調用這種情況下的方法,但文檔不太清楚如何使用它們。任何幫助將非常感激。
[如何在Tensorflow中設置圖層學習速率?](https://stackoverflow.com/questions/34945554/how-to-set-layer-wise-learning-rate-in-tensorflow) –