首页 文章

在分布式tensorflow中,如何从工作者写入摘要

提问于
浏览
0

我正在使用谷歌 Cloud ml分布式样本在一组计算机上训练模型 . 输入和输出(即rfrecords,checkpoints,tfevents)都在gs://(谷歌存储)

与分布式样本类似,我使用最后调用的评估步骤,结果写为摘要,以便在Cloud ML中使用参数hypertuning,或使用我自己的工具堆栈 .

但是,我不是对大批数据执行单一评估,而是运行多个评估步骤,以便检索有关性能标准的统计信息,因为我不希望将其限制为单个值 . 我想获得有关性能间隔的信息 . 特别是,性能的差异对我来说很重要 . 我宁愿选择平均性能较低但最差情况较好的模型 .

因此,我进行了几个评估步骤 . 我想要做的是并行化这些评估步骤,因为现在只有主人正在评估 . 使用大型集群时,它是低效率的来源,也是评估任务工作者的因素 .

基本上,主管创建为:

self.sv = tf.train.Supervisor(
            graph,
            is_chief=self.is_master,
            logdir=train_dir(self.args.output_path),
            init_op=init_op,
            saver=self.saver,
            # Write summary_ops by hand.
            summary_op=None,
            global_step=self.tensors.global_step,
            # No saving; we do it manually in order to easily evaluate immediately
            # afterwards.
            save_model_secs=0)

在训练结束时,我称之为摘要作者 . :

# only on master, this is what I want to remove
            if self.is_master and not self.should_stop:

                # I want to have an idea of statistics of accuracy
                # not just the mean, hence I run on 10 batches

                for i in range(10):
                    self.global_step += 1

                    # I call an evaluator, and extract the accuracy 
                    evaluation_values = self.evaluator.evaluate()
                    accuracy_value = self.model.accuracy_value(evaluation_values)

                    # now I dump the accuracy, ready to use within hptune
                    eval_summary = tf.Summary(value=[
                        tf.Summary.Value(
                            tag='training/hptuning/metric', simple_value=accuracy_value)
                    ])

                    self.sv.summary_computed(session, eval_summary, self.global_step)

我也尝试从 Worker 那里写出摘要,但是我得到了一个错误:基本上摘要只能从大师那里写出来 . 有没有简单的解决方法?错误是: "Writing a summary requires a summary writer."

1 回答

  • 1

    我的猜测是你自己为每个 Worker 创建一个单独的摘要作者,而直接写出摘要 .

    我怀疑你不会使用主管进行评估处理 . 只需在每个worker上加载一个会话,以便使用最新的检查点进行eval,并写出独立的摘要 .

相关问题