init
功能描述
初始化mxRec模型训练框架。
函数原型
def init(**kwargs)
**kwargs参数说明
参数名 |
类型 |
可选/必选 |
说明 |
---|---|---|---|
max_steps |
int |
可选 |
进行训练的总步数,默认值“-1”,表示将训练数据全部耗尽后结束。取值范围:[-1, 2147483647] |
train_steps |
int |
可选 |
进行测试预测的训练步数,默认值为“-1”,代表将训练数据集全部训练完后进行预测。取值范围:[-1, 2147483647]。 |
eval_steps |
int |
可选 |
测试预测步数,默认值为“-1”,代表将测试数据集全部预测完后继续训练。取值范围:[-1, 2147483647]。 |
if_load |
bool |
可选 |
选择是否进行模型加载,默认值为“False”。 取值范围:
|
use_dynamic |
bool |
可选 |
是否使用动态shape功能,默认值“True”。 取值范围:
|
use_dynamic_expansion |
bool |
可选 |
是否使用片上内存显存侧动态扩容功能,默认值“False”。 取值范围:
|
bind_cpu |
bool |
可选 |
是否使用自动CPU绑核功能,默认值“True”。 取值范围:
|
save_steps |
int |
可选 |
训练save_step后进行保存,默认值“-1”,表示将训练数据全部训练完后进行保存,取值范围:[-1, 2147483647]。 |
save_checkpoint_due_time |
int |
可选 |
保存全量模型的时间间隔(单位:秒)。 取值范围:[1, 2147483647],通常save_checkpoint_due_time参数值大于save_delta_checkpoints_secs。 当“is_incremental_checkpoint”设置为“True”时,该选项为必选。 |
save_delta_checkpoints_secs |
int |
可选 |
保存增量模型的时间间隔(单位:秒)。 取值范围:[1, 2147483647],通常save_checkpoint_due_time参数值大于save_delta_checkpoints_secs。 当“is_incremental_checkpoint”设置为“True”时,该选项为必选。 |
is_incremental_checkpoint |
bool |
可选 |
是否开启模型增量保存与加载,默认为“False”。
|
restore_model_version |
int |
可选 |
需要加载的模型的步数step,不传该参数时,默认加载最新的模型;当取值为某个具体的step时,加载对应step的模型。 取值范围[0, 2147483647]。 |
recent_key_count_threshold |
int |
可选 |
在增量保存的这段时间内key出现的最小次数,用于低频过滤,在保存增量模型的时候过滤掉出现频次小于这个参数的key。默认是0。取值范围:[0, 2147483647] |
- 如果通过kwargs传递其他未说明参数,则mxRec内部不会使用到该参数。
- “train steps”和“eval steps”不能同时为“0”,且两者传入的参数需要与实际保持一致。
- 当“use_dynamic_expansion”动态扩容参数为True时,请选用ByAddr类的优化器,如SGDByAddr、LazyAdamByAddress等。
- 在train_and_evaluate场景下不支持多轮eval。
- “max_steps”、“train_steps”、“eval_steps”和“save_steps”必须与实际训练情况保持一致。若不一致,可能会导致训练无法正常进行、训练出现精度问题等情况。
返回值说明
- 成功:None。
- 失败:抛出异常。
使用示例
from mx_rec.util.initialize import init init(max_steps=200, train_steps=100, eval_steps=10, save_steps=100, use_dynamic=True, use_dynamic_expansion=False)
参考资源
接口调用流程及示例,请参见模型迁移与训练。