我在tf.estimator
,尤其是DNNClassifier
中对TensorFlow的估计量有疑问。它在documentation中说:
max_steps
:要训练模型的总步骤数。如果是None
,请永远训练或直到input_fn
产生OutOfRange
错误或StopIteration
异常为止
在datasets for estimators的文档中提到要进行培训,您需要使用shuffle()
,repeat()
和batch_size
方法,以便数据集上的迭代器一次处理完数据后,它不会停止。
这是否意味着诸如DNNClassifier
之类的预制估算器没有基于学习率或损失变化的停止准则?真的是这样吗,您只能让这些模型根据您如何指定输入函数或给出最大步数来停止训练?
答案 0 :(得分:0)
TensforFlow不会假定知道应该停止的学习速度或损失。这是合理的,因为它们取决于问题。您可以合理地认为,它可以基于舍入误差为给定的数据类型(如果它们是一致的,例如float32)推断出合理的限制,但是许多问题应该更早解决。因此,没有明智的,广泛适用的默认设置。
但是,您可以使用回调自己控制此行为。 TensorFlow包含import pandas as pd
回调。您可以找到here的(python)文档。