ludwig 在Trainer中,train_step的定义是什么?在Model中,evaluation_step/predict_step的定义是什么?

b4qexyjb  于 2个月前  发布在  其他
关注(0)|答案(3)|浏览(38)

您的功能请求是否与问题相关?请描述。

为什么 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))中定义。
非常感谢。

yrwegjxp

yrwegjxp1#

嘿,@ericxsun,我们可能可以改变这两种方式(将两者都放在ECD中或将两者都放在训练器/预测器中)。将评估步骤放在ECD中实际上只是...方便的问题,因为它会运行前向传播并更新模型上的指标。但我认为更原则性的做法是将其移出ECD。你对这两种方法有偏好吗?

hec6srdp

hec6srdp2#

@tgaddair ,我想把train_step放在Trainer里,把evaluate_step/predict_step放在Predictor里会更合理。

  • 模型拓扑、度量和损失都属于ECD
  • 训练/预测是工作流程步骤,它们只是调用模型的fn(前向、度量、损失)函数

所以最好把它们从ECD中移出来。

fcipmucu

fcipmucu3#

我同意这会更有意义,尽管可能需要一些重构。我们可以暂时保留它,直到我们重新审视一般的训练器和预测器,除非这对你的工作是一个障碍,在这种情况下,我很乐意研究它!

相关问题