loss上报接口
接口功能
trainer组件提供给用户训练脚本给trainer上报每个epoch的loss的接口。用户通过此接口可以将自己的epoch上报给trainer,trainer会将loss信息上报给增量训练系统,并能通过增量训练系统的接口查询本次训练的loss变化曲线信息。

- 注意loss参数的值符合范围要求,0.0~1000000.0。
- trainer组件为了安全防护,一次训练任务最多只支持记录3000个epoch的loss,更多的loss将被丢弃掉,不予记录。
- 为了不影响用户的训练效率,上报和记录loss的过程为异步过程,故如果调用上报接口后,训练脚本马上结束,没来得及上报的loss会被丢弃掉。
接口引用路径
from ockics.modules.trainer import update_one_epoch_loss
接口格式
函数:update_one_epoch_loss(loss)
输入参数
参数 |
类型 |
是否必选 |
说明 |
取值要求 |
---|---|---|---|---|
loss |
float |
必选 |
需要上报的loss值,必须是float类型。 |
必须是float类型,且为了校验异常值,loss值需要大于0,小于0的数据将被记录为0,支持的最大值为1000000.0,大于最大值的loss将被记录为1000000.0。 |
返回值
无
使用样例
from ockics.common import ClassFactory, ClassType from ockics.entry import main_train from ockics.modules.estimator import BaseEstimator from ockics.modules.trainer import update_one_epoch_loss @ClassFactory.register(ClassType.ESTIMATOR) class Estimator(BaseEstimator): ''' my own train estimator ''' def train(self, init_model, train_data, eval_data, train_config_yaml): print(init_model) print(train_data) print(eval_data) print(train_config_yaml) update_one_epoch_loss(0.01) return "./samples/yolov5/yolov5x6_base.pt", "./samples/yolov5/yolov5x6.onnx" if __name__ == "__main__": main_train()
父主题: trainer组件接口