Tensorflow 1.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)
.tfevents
文件包含由fit方法编写的事件。 DNNRegressor
至少为每个隐藏层保存了直方图和零的分数。您可以使用Tensorboard来查看它们。
Tensorflow不覆盖事件文件,而是附加到它们,所以更大的文件大小并不意味着更多的CPU周期。
你可以通过config
参数DNNRegressor
构造(RunConfig实例),并指定你如何经常要总结利用其save_summary_steps
财产被保存。默认是每100
步骤保存汇总。
为了防止创建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文件中的一部分,你是的。