在 Tensorflow CIFAR-10 教程中拆分 training/validation 中的数据
Splitting data in training/validation in Tensorflow CIFAR-10 tutorial
我对如何在 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))
因为这已经跟踪了这些步骤,但我如何交付正确的文件队列?
任何正确方向的帮助或指示都会很棒。
像下面这样的东西应该可以工作:
tf.split_v(tf.random_shuffle(...
或者试试这个(我最喜欢的)。 model_selection 方法 train_test_split 专门设计用于将您的数据 随机并按百分比 .
分成训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.33, random_state=42)
我对如何在 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))
因为这已经跟踪了这些步骤,但我如何交付正确的文件队列?
任何正确方向的帮助或指示都会很棒。
像下面这样的东西应该可以工作:
tf.split_v(tf.random_shuffle(...
或者试试这个(我最喜欢的)。 model_selection 方法 train_test_split 专门设计用于将您的数据 随机并按百分比 .
分成训练集和测试集X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.33, random_state=42)