云服务器内容精选

  • 基于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' ) 表4 learner.predict参数 参数名称 可选/必选 参数类型 参数描述 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系列模型。
  • 基于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 ) 表2 learner.fit参数 参数名称 可选/必选 参数类型 参数描述 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] ) 表3 learner.validate参数 参数名称 可选/必选 参数类型 参数描述 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系列模型。
  • 数据集统计信息可视化 数据集API支持自动统计数据集信息,比如目标、尺寸等信息,帮助用户更好的理解数据集,同时还可以动态查看每一个batch经过pipeline之后的输入图像,确保数据增强的正确性。 db.plot_dataset_stats() 可以绘制数据集的统计信息,图像的显示大小可以由figsize参数控制; db.print_dataset_stats() 能够打印出具体的统计信息数值; db.show_batch() 可以动态展示内存中的经过增强后的图片信息,可以通过rows(显示行数)和figsize(显示大小)来控制输出。 注:show_batch返回一个生成器,可以使用next进行访问,比如: plotter = db.show_batch(rows=2, figsize=(14, 8)) next(plotter) 表2 show_batch参数说明 参数名称 可选/必选 参数类型 参数描述 rows 可选 int batch绘制行数,默认为1。 figsize 可选 tuple 画布尺寸。
  • 加载数据集 from modelarts.algo_kits import DetDataBlock """ 加载coco格式数据集,并指定训练集和验证集文件路径,类别数和类别信息默认会自动读取。 """ db = DetDataBlock(env, batch_size=8, data_root="./data/raw/coco2017_sample", num_classes=80, train_img_prefix="val2017", train_ann_file="annotations/instances_val2017.json", val_img_prefix="val2017", val_ann_file="annotations/instances_val2017.json", model_name="mmdetection:fcos/fcos_r50_caffe_fpn_gn-head_1x_coco" ) 表1 DetDataBlock参数说明 参数名称 可选/必选 参数类型 参数描述 env 必选 EnvManager Object 上下文管理对象,初始化方法请参考算法工程环境管理。 batch_size 可选 int 批处理大小,默认为8。 workers 可选 int 数据加载进程数,默认为4。 data_type 可选 string 数据集类型,目前只支持“coco”,其他数据集格式可以通过COCOConverter进行转换。 data_root 必选 string 数据集路径。 seed 可选 int 随机数种子。 num_classes 可选 int 类别数,默认会从标注信息中读取。 categories 可选 list / tuple / string 类别信息,默认会从标注信息中读取,如果指定类别信息,则只加载对应类别的数据。 train_img_prefix 必选 string 训练集图片的相对路径(相对于data_root)。 train_ann_file 必选 string 训练集标注文件的相对路径(相对于data_root)。 val_img_prefix 可选 string 验证集图片的相对路径(相对于data_root),默认不加载验证集信息。 val_ann_file 可选 string 验证集标注文件的相对路径(相对于data_root),默认不加载验证集信息。 test_img_prefix 可选 string 测试集图片的相对路径(相对于data_root),默认不加载测试集信息。 test_ann_file 可选 string 测试集标注文件的相对路径(相对于data_root),默认不加载测试集信息。 model_name 必选 string 模型名称。
  • 构建模型 from modelarts.algo_kits import Model model = Model( env, model_name="mmdetection:fcos/fcos_r50_caffe_fpn_gn-head_1x_coco", num_classes=80, checkpoint="your_local_path_of_pretrained_model", load_default_backbone=False ) # 将模型加载至cpu上 model.to_device(-1) 表1 Model参数说明 参数名称 可选/必选 参数类型 参数描述 env 必选 EnvManager Object 上下文管理对象,初始化方法请参考通过Python API使用算法套件。 model_name 必选 string 模型名称。 num_classes 可选 int 类别数,默认会从标注信息中读取。 checkpoint 可选 string 本地预训练模型路径,默认为None,使用默认值时随机生成网络参数。 load_default_backbone 可选 boolean 是否加载默认的预训练骨干网络,如resnet50,默认为False,该参数设置为True时模型自动从open-mmlab中拉取,可与checkpoint参数二选一。 父主题: 通过Python API使用算法套件