是否有可能在细长的列车中显示分类错误和连续错误?

时间:2017-04-04 11:31:13

标签: tensorflow tf-slim

我不仅想要观察在训练期间应该优化的连续误差,还要观察训练期间另一个不可区分的指标(如top1或top5分类错误)。有可能吗?

示例:

outputs = MyModel(inputs)
continuous_loss = some_loss(outputs, labels)
# it could return tensor with dimension different than continuous loss,
# which return only one scalar for batch
another_loss = some_another_loss(outputs, labels, ...)

optimizer = tf.RMSPropOptimizer(lr, momentum)
train_op = slim.learning.create_train_op(continuous_loss, optimizer, ...)
# this call is blocking and i can't run another op with session.run
slim.learning.train(train_op, logdir, ...)

我需要的只是重新定义 train_step_fn 并传递给 [train_op,another_loss] slim.learning.train 数组

1 个答案:

答案 0 :(得分:0)

没有理由不能在图表中创建自己的钩子以获得精度指标。即使您使用的是tf-slim,您仍然可以使用摘要来获取所需的信息。要生成top1 / 5错误,您需要进行非训练run()调用并获取错误摘要,然后将其写入摘要编写器。

或者,如果您只想要在python中打印(),可以在验证集上获取错误:

feeds={x_validation_data:x,y_validation_data:y}
fetches=[error,cross_entropy]
res=sess.run(fetches=fetches, feed_dict=feeds) 
error=res[0]

没有更多信息,我可以从您的问题中理解。如果您可以通过传递验证集来计算Tensorflow中的错误,那么您也可以在sess.run()调用中获取它!