昇腾社区首页
中文
注册

loss上报接口

接口功能

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

  1. 注意loss参数的值符合范围要求,0.0~1000000.0。
  2. trainer组件为了安全防护,一次训练任务最多只支持记录3000个epoch的loss,更多的loss将被丢弃掉,不予记录。
  3. 为了不影响用户的训练效率,上报和记录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()