在tensorflow
验证监视器流媒体auc中,它对流媒体意味着什么?在
假设我们设置every_n_steps = 100
,这样监视器将每100步调用一次。在
另外,假设validation monitor的input_fn函数将生成数据流。假设10批。在
案例1:每次调用验证监视器时,auc状态都会重置,因此,在每个验证步骤中对10个批次执行流式处理。在
情况2:auc状态没有重置,因此流式auc是从第一次调用validation monitor开始计算的。即,从10个批次计算第一个输出(在100个步骤处),第二个验证输出(200个步骤)基于第一次调用之后的流式auc以及输入的10个批次来计算。第三输出(300步)基于第二次调用后的流式auc以及输入的10个批处理来计算。在
问题1,实施了哪种方案?在
问题2,如果我们使用tf.metrics.auc
,有什么区别?在this doc中,他们说:
For estimation of the metric over a stream of data, the function creates an update_op operation that updates these variables and returns the auc.
所以这也计算流式auc?!在
答案是案例1。
ValidationMonitor
调用估计器的evaluate(),它从检查点重新加载模型。局部变量(包括度量所依赖的统计信息)不保存在检查点中;它们在重新加载检查点后重新初始化。在度量总是流式的,以便可以组合多个评估步骤(由
eval_steps
参数控制)ValidationMonitor
。但这种聚集只是在一个evaluate()
步骤内。在至于
tf.contrib.streaming_auc
与tf.metrics.auc
,后者在核心TensorFlow中,并且有API稳定性保证(它可能是在contrib
作为streaming_auc
挂出一段时间后移到那里的)。它们应该是等价的,并且核心版本是最好的,除非contrib
版本获得了一些您想要使用的新特性(这里不适用)。在相关问题 更多 >
编程相关推荐