2017-04-18 182 views
0

我使用tensorflow 1.0來培訓DNNRegressor。大多數培訓已經由新的tensorflow 1.0功能自動處理。型號信息自動保存在文件夾中。我使用for循環重複地使用不同的訓練文件調用train(filepath,isAuthentic)函數。Tensorflow 1.0培訓模式使用指數級更多的空間

問題是events.out.tfevents文件越來越大,佔用空間。我已經通過在生成這些文件時刪除這些文件來解決這個問題,但是CPU仍然會在嘗試生成這些文件時增加更多的時間浪費。這些不會影響培訓或預測的結果。有沒有辦法阻止這些events.out.tfevents文件被生成?

我注意到,當我長時間運行python程序時,events.out.tfevents文件大小開始很小,然後變大,但是如果我運行幾個較短間隔期的訓練,則文件尺寸保持不變。

picture of model folder, contents ordered by size

當我讓跑步訓練足夠長的時間,在events.out.tfevents達到了200 MB,浪費了太多的時間和空間。我已經嘗試更改傳遞給DNNRegressor的RunConfig對象中的檢查點和彙總參數。

def getRegressor(): 
    feature_cols = [tf.contrib.layers.real_valued_column(k) for k in networkSetup.FEATURES] 
    # Build 2 layer fully connected DNN with 8, 8 units respectively. 
    regressor = tf.contrib.learn.DNNRegressor(feature_columns=feature_cols, 
              hidden_units=[8, 8], 
              model_dir=networkSetup.MODEL_DIR, 
              activation_fn=tf.nn.sigmoid, 
              optimizer=tf.train.GradientDescentOptimizer(
               learning_rate=0.001 
              ) 
              ) 
    return regressor 

def train(filepath, isAuthentic): 
    regressor = getRegressor() 
    # training on training set 
    regressor.fit(input_fn=lambda: input_fn(filepath, isAuthentic), steps=1) 

回答

0

.tfevents文件包含由fit方法編寫的事件。 DNNRegressor至少爲每個隱藏層保存了直方圖和零的分數。您可以使用Tensorboard來查看它們。

Tensorflow不覆蓋事件文件,而是附加到它們,所以更大的文件大小並不意味着更多的CPU週期。

你可以通過config參數DNNRegressor構造(RunConfig實例),並指定你如何經常要總結利用其save_summary_steps財產被保存。默認是每100步驟保存彙總。

0

爲了防止創建events.out文件的張量流,您只需評論每次新用戶訓練模型時寫入該文件的那部分代碼。

在所有模型中,都有寫在主類中的編寫器來創建這些彙總/日誌以進一步分析數據,儘管它在許多情況下並不有用。從Tensorflow盜夢空間的「retrain.py」

示例代碼行:

train_writer = tf.summary.FileWriter(FLAGS.summaries_dir + '/train',sess.graph) 
validation_writer = tf.summary.FileWriter(FLAGS.summaries_dir + '/validation') 

註釋掉的代碼創建events.out文件中的一部分,你是的。

相關問題