在Tensorflow CIFAR-10教程中的训练/验证中拆分数据

时间:2017-06-30 18:23:02

标签: python validation tensorflow tensorflow-gpu

我对如何在CIFAR-10 TensorFlow教程中实现验证感到困惑。

我正在运行位于https://github.com/tensorflow/models/tree/master/tutorials/image/cifar10的CIFAR-10模型。

让我们假设我有一堆文件,我想要同时洗牌,并分成每个训练时期的训练和验证数据(按纪元我的意思是整个数据集,训练和验证一轮)。

也就是说,然后我会进行培训,培训结束后,我会进行验证,之后,我会重新调整数据文件并分成新的培训和验证集。

我怀疑这样做的方法可能涉及_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))

由于这已经跟踪了步骤,但我如何提供正确的文件队列?

任何正确方向的帮助或指示都会很棒。

1 个答案:

答案 0 :(得分:4)

以下内容应该有效: Foo<Bar<int> >

或试试这个......(我最喜欢的)

model_selection方法train_test_split Reference Link专门用于将您的数据分成随机和按百分比的列车和测试集。

tf.split_v(tf.random_shuffle(...

希望这会有所帮助......