华为云AI开发平台ModelArts构建学习器_云淘科技
from modelarts.algo_kits import Learner learner = Learner( model=model, datablock=db, output_dir="./output", optimizer="SGD", momentum=0.999, checkpoint="your_local_path_of_pretrained_model", warmup_policy="linear", warmup_iters=500, epoch_based_eval_interval=1, save_ckpt_interval=1, log_params={"log_type":["table", "graph"], "table_highlight_method":"best", "log_interval":10} )
参数名称 |
可选/必选 |
参数类型 |
参数描述 |
---|---|---|---|
model |
必选 |
Model object |
模型对象,初始化方法参考Model模块。 |
datablock |
必选 |
DataBlock object |
数据集对象,初始化方法参考DataBlock模块。 |
output_dir |
必选 |
string |
训练时checkpoint,日志等的输出路径。 |
optimizer |
可选 |
string |
训练优化器,支持SGD和Adam,默认为SGD。 |
momentum |
可选 |
float |
动量,默认为0.999。 |
checkpoint |
可选 |
string |
预训练模型路径,默认为None,优先级高于Model的checkpoint入参,指定checkpoint入参后会覆盖初始化Model时对应checkpoint的模型参数。 |
warmup_policy |
可选 |
string |
warmup策略,默认为linear。其中,open-mmlab系列模型支持linear和polynomial两种,ivg系列模型支持cosine。 |
warmup_iters |
可选 |
int/float |
warmup的迭代次数,默认为500。 |
epoch_based_eval_interval |
可选 |
int/float |
训练过程中评估间隔数,以epoch为单位,默认为1。 |
iter_based_eval_interval |
可选 |
int/float |
训练过程中评估间隔数,以iteration为单位,默认为100。 |
save_ckpt_interval |
可选 |
int/float |
训练过程中保存模型的间隔数,以epoch为单位,默认为1。 |
log_params |
可选 |
dict |
训练日志相关参数,包含“log_type”, “table_highlight_method”和“log_interval”三个字段,分别代表日志类型,训练损失高亮方法,日志间隔时间。log_type支持text(原始日志), table(表格), graph(动态曲线图)和tensorboard四中,其中除text外其余日志类型可任意组合;table_highlight_method支持best(高亮最优)和gradient(高亮渐变);log_interval的单位为iteration。具体见上述代码示例。 |
基于learner进行模型训练
learner.fit( lr=0.001, max_epochs=5, weight_decay=0.005, seed=None, checkpoint=None, gpu_ids=[0], world_size=1, local_size=1, launch_remote=False )
参数名称 |
可选/必选 |
参数类型 |
参数描述 |
---|---|---|---|
lr |
可选 |
float |
学习率参数,默认为0.001。 |
max_epochs |
可选 |
int/float |
最大训练epoch数,默认为5。 |
weight_decay |
可选 |
float |
权重衰减,默认为0.005。 |
seed |
可选 |
int |
训练随机数,默认为None。 |
checkpoint |
可选 |
string |
预训练模型路径,优先级高于初始化Learner和Model时的路径参数,指定checkpoint入参后会覆盖初始化Learner或Model时对应checkpoint的模型参数。 |
gpu_ids |
可选 |
int / list |
open-mmlab系列默认使用0号卡进行训练。ivg系列可指定,如0或者[0]或者[0,1]。 |
world_size |
可选 |
int |
分布式训练节点数量,默认为1,暂不支持分布式训练。 |
local_size |
可选 |
int |
单个节点中的GPU数量,默认为1,暂不支持分布式训练。 |
launch_remote |
可选 |
boolean |
提交训练作业,默认为False,暂不支持基于API提交训练作业。 |
基于learner进行模型评估
learner.validate( data=db, checkpoint="your_local_path_of_pretrained_model", gpu_ids=[0] )
参数名称 |
可选/必选 |
参数类型 |
参数描述 |
---|---|---|---|
data |
可选 |
DataBlock object |
数据集对象,默认为None,初始化方法参考DataBlock模块。默认值时会基于构建好的DataBlock对象中的validation data 进行模型评估。 |
checkpoint |
可选 |
string |
预训练模型路径,默认为None。当基于learner.fit完成训练且该参数为None,则基于训练后的模型参数进行评估。若指定checkpoint路径,则加载对应路径的模型参数进行评估。 |
gpu_ids |
可选 |
int/list |
模型评估时使用的GPU序号。open-mmlab系列模型默认使用0号卡。ivg系列可指定,如0或者[0, 1]。 |
show_score_thr |
可选 |
float |
评估时预测结果置信度阈值,默认为0.5,仅用于open-mmlab系列模型。 |
out |
可选 |
string |
评估结果pkl文件保存路径,默认为None,仅用于open-mmlab系列模型。 |
基于learner.predict进行模型推理
learner.predict( img_path='your_local_path_of_image', checkpoint='your_local_path_of_pretrained_model', gpu_ids=None, save_dir='your_local_path_for_saving_output' )
参数名称 |
可选/必选 |
参数类型 |
参数描述 |
---|---|---|---|
img_path |
必选 |
string |
图片路径,当前predict仅支持推理图片。 |
checkpoint |
可选 |
string |
预训练模型路径,默认为None。当基于learner.fit完成训练且该参数为None,则基于训练后的模型参数进行推理。若指定checkpoint路径,则加载对应路径的模型参数进行推理。 |
gpu_ids |
可选 |
int/list |
推理时使用的GPU,默认为None(使用cpu进行推理)。 |
save_dir |
可选 |
string |
默认为初始化Learner时指定的work_dir,可指定其他本地路径。 |
model |
可选 |
Model object |
自定义Model对象,仅用于open-mmlab系列模型,默认为None。默认值时使用基于learner.fit训练好的模型进行推理。 |
score_thr |
可选 |
float |
推理时结果置信度阈值,默认为0.3,仅用于open-mmlab系列模型。 |
ret_vis |
可选 |
boolean |
是否可视化推理结果,默认为False,仅用于open-mmlab系列模型。 |
父主题: 通过Python API使用算法套件
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家