您的功能请求是否与问题相关?请描述。
为什么 train_step
在 Trainer 中定义,而 evaluation_step/predict_step
在 Model (ECD/Base) 中定义?据我所知,the old version(and before 0.4.1) - the TF-one 都在 ECD 类(作为 Model (ECD/Base))中定义。
非常感谢。
您的功能请求是否与问题相关?请描述。
为什么 train_step
在 Trainer 中定义,而 evaluation_step/predict_step
在 Model (ECD/Base) 中定义?据我所知,the old version(and before 0.4.1) - the TF-one 都在 ECD 类(作为 Model (ECD/Base))中定义。
非常感谢。
3条答案
按热度按时间yrwegjxp1#
嘿,@ericxsun,我们可能可以改变这两种方式(将两者都放在ECD中或将两者都放在训练器/预测器中)。将评估步骤放在ECD中实际上只是...方便的问题,因为它会运行前向传播并更新模型上的指标。但我认为更原则性的做法是将其移出ECD。你对这两种方法有偏好吗?
hec6srdp2#
@tgaddair ,我想把
train_step
放在Trainer里,把evaluate_step/predict_step
放在Predictor里会更合理。所以最好把它们从ECD中移出来。
fcipmucu3#
我同意这会更有意义,尽管可能需要一些重构。我们可以暂时保留它,直到我们重新审视一般的训练器和预测器,除非这对你的工作是一个障碍,在这种情况下,我很乐意研究它!