我用tensorflow 1.0来训练一个DNNRegressor。大部分培训已经由新的tensorflow 1.0特性自动处理。模型信息自动保存在文件夹中。我使用for循环,使用不同的训练文件反复调用train(filepath,isAuthentic)函数。在
问题是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
步骤保存摘要。在这是因为新生成的tensorboard图形文件。在
如果在代码中发现这些行,请将它们注释掉,它就会消失。在
为了防止tensorflow创建事件.out文件,每次新用户训练模型时,您只需对编写此文件的代码部分进行注释。在
在所有的模型中,都有编写者在主类中编写这些摘要/日志,以便对数据进行进一步分析,尽管在许多情况下这是没有用的。在
Tensorflow Inception的示例代码行再培训.py“:
只需注释掉创建出去。事件归档,你就起来了。在
相关问题 更多 >
编程相关推荐