Tensorflow 1.0训练模型使用指数级更多的资源

2024-09-30 01:35:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我用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)

Tags: 文件tftensorflow时间事件trainoutevents
3条回答

.tfevents文件包含由fit方法编写的事件。DNNRegressor至少为每个隐藏层保存直方图和零值。您可以使用Tensorboard查看它们。在

Tensorflow不会覆盖事件文件,而是将其附加到事件文件中,因此更大的文件大小并不意味着更多的CPU周期。在

您可以将config参数传递给DNNRegressor构造函数(RunConfig实例),并指定使用其save_summary_steps属性保存摘要的频率。默认值是每隔100步骤保存摘要。在

这是因为新生成的tensorboard图形文件。在

tfFileWriter = tf.summary.FileWriter(os.getcwd())
tfFileWriter.add_graph(sess.graph)
tfFileWriter.close()

如果在代码中发现这些行,请将它们注释掉,它就会消失。在

为了防止tensorflow创建事件.out文件,每次新用户训练模型时,您只需对编写此文件的代码部分进行注释。在

在所有的模型中,都有编写者在主类中编写这些摘要/日志,以便对数据进行进一步分析,尽管在许多情况下这是没有用的。在

Tensorflow Inception的示例代码行再培训.py“:

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

只需注释掉创建出去。事件归档,你就起来了。在

相关问题 更多 >

    热门问题