2017-06-30 9 views
1

CIFAR-10 TensorFlowチュートリアルで検証を実装する方法を混同しています。Tensorflow CIFAR-10チュートリアルでトレーニング/検証のデータを分割する

https://github.com/tensorflow/models/tree/master/tutorials/image/cifar10にあるCIFAR-10モデルを実行しています。

私はシャッフルするファイルと、トレーニングの各エポックのトレーニングデータと検証データに分割したいと思っているとしましょう(エポックでは、データセット全体を通して1ラウンド、トレーニングと検証)。

つまり、トレーニングを実行して、トレーニングが完了したら、検証を実行した後、データファイルを再シャッフルして新しいトレーニングと検証セットに分割します。

私はそれを行うための方法は、おそらく_LoggerHookオブジェクト関係と思われる。これは、すでにステップのトラックを保っているが、どのように私は、ファイルの正しいキューを提供しないので

class _LoggerHook(tf.train.SessionRunHook): 
    """Logs loss and runtime.""" 

    def begin(self): 
     self._step = -1 
     self._start_time = time.time() 

    def before_run(self, run_context): 
     self._step += 1 
     return tf.train.SessionRunArgs(loss) # Asks for loss value. 

    def after_run(self, run_context, run_values): 
     if self._step % FLAGS.log_frequency == 0: 
      current_time = time.time() 
      duration = current_time - self._start_time 
      self._start_time = current_time 

      loss_value = run_values.results 
      examples_per_sec = FLAGS.log_frequency * FLAGS.batch_size/duration 
      sec_per_batch = float(duration/FLAGS.log_frequency) 

      format_str = ('%s: step %d, loss = %.2f (%.1f examples/sec; %.3f ' 
           'sec/batch)') 
      print(format_str % (datetime.now(), self._step, loss_value, 
            examples_per_sec, sec_per_batch)) 

を?

正しい方向のヘルプやポインターはすばらしいでしょう。

答えて

2

次のようなものが動作するはずです: tf.split_v(tf.random_shuffle(...

それとも、この1 ...(私のお気に入り)

を試してみてくださいReference Linkが具体的に電車にデータを分割するために設計され、テストがランダムを設定しているtrain_test_split model_selection方法パーセントで

X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.33, random_state=42) 

...この情報がお役に立てば幸いです
関連する問題