1

コンピューターのクラスターでモデルをトレーニングするために、google cloud ml 分散サンプルを使用しています。入力と出力 (rfrecords、checkpoints、tfevents) はすべて gs:// (Google ストレージ) にあります。

配布されたサンプルと同様に、最後に呼び出される評価ステップを使用し、Cloud ML 内で、または独自のツール スタックを使用してパラメーターのハイパーチューニングを使用するために、結果が要約として書き込まれます。

しかし、大量のデータに対して単一の評価を実行するのではなく、単一の値に限定したくないため、パフォーマンス基準に関する統計を取得するために、いくつかの評価ステップを実行しています。パフォーマンス間隔に関する情報を取得したい。特に、パフォーマンスの分散は私にとって重要です。平均パフォーマンスは低いが、最悪のケースがより良いモデルを選択したいと思います。

したがって、いくつかの評価ステップを実行します。私がやりたいことは、これらの評価ステップを並列化することです。現在、マスターのみが評価しているためです。大規模なクラスターを使用する場合、非効率の原因となり、タスク ワーカーも評価する必要があります。

基本的に、スーパーバイザーは次のように作成されます。

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)

ワーカーからも要約を書き込もうとしましたが、エラーが発生しました。基本的に、要約はマスターからのみ書き込むことができます。回避する簡単な方法はありますか? エラーは次のとおりです。"Writing a summary requires a summary writer."

4

1 に答える 1