在用tensorflow訓練神經網路時,有時我們想固定其中一些變數的取值不變,訓練指定scope中的變數,常用的如finetune等。
一種最常用的方法是在用optimizer計算梯度時,指定計算梯度的變數列表(待優化的變數列表)。示例如下:
import tensorflow as tf更多提取變數列表的方法可參考:tensorflow 獲取model中的變數列表,用於模型載入等import tensorflow.contrib.slim as slim
# 定義優化器
g_optimizer = tf.train.adamoptimizer(learning_rate = 1e-4)
# 指定待優化的變數列表
g_var_list = tf.get_collection(key=tf.graphkeys.training_variables,scope="generator")
# 根據損失 gen_loss, 計算指定變數的優化梯度,g_gradient中儲存了待優化的變數和對應變數的優化梯度。
g_gradient = g_optimizer.compute_gradients(loss = gen_loss, var_list = g_var_list)
# 應用梯度,用計算的變數梯度優化變數列表中的變數
更多凍結變數的方法可參考:tensorflow凍結變數方法(tensorflow freeze variable)
但是我認為,以上就足夠了。
TensorFlow訓練Logistic回歸
如下圖,可以清晰看到線性回歸和邏輯回歸的關係,乙個線性方程被邏輯方程歸一化後就成了邏輯回歸。對於二分類,輸出假如線性回歸模型為,則要將z轉成y,即y g z 於是最直接的方式是用單位階躍函式來表示,即 如圖,但階躍函式不連續,於是用sigmoid函式替代之,為 如圖,則有,即logistics函式,...
Tensorflow訓練迴圈
def fit loop model,inputs,targets,sample weights none,class weight none,val inputs none,val targets none,val sample weights none,batch size none,epoch...
tensorflow 資料訓練
一 資料訓練遇到問題 excle資料,如何進行訓練?excle資料,如何resize 呢?目前思路 tfrecords 採用 numpy的方法進行處理 學習方法 從檔案中讀取資料 標準化格式tfrecords記錄 二 資料預處理 numpy 不能有中文,要採用decode等方法 不能夠有百分號?目前...