文档首页 > > AI Gallery用户指南> 预置AI算法(官方发布)> 物体检测>

EfficientDet(物体检测/Tensorflow)

EfficientDet(物体检测/Tensorflow)

分享
更新时间:2020/12/14 GMT+08:00

概述

此模型基于Scalable and Efficient Object Detection中提出的模型结构实现,EfficientDet是一个总称,可以分为EfficientDet D1 ~ EfficientDet D7,速度逐渐变慢,但是精度也逐渐提高。 以EfficientNet作为Backbone。该算法会载入在COCO 2017上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。

单击此处订阅算法。

训练

  • 算法基本信息
    • 适用场景:物体检测
    • 支持的框架引擎:Tensorflow-2.1.0-python3.6
    • 算法输入:

      仅支持ModelArts数据管理平台发布的数据集(数据集必须设置“训练验证比例”),建议用户以8:2或9:1的比例进行切分,即“训练验证比例”设置为0.8或0.9,暂不支持用户自定义数据集。

    • 算法输出:
      用于TF-Serving推理的saved_model模型。

      Model

      mAP (coco开源数据集)

      P4推理速度(ms/pic)

      EfficientDet-D0

      33.8

      29.48

      EfficientDet-D1

      39.6

      55.21

      EfficientDet-D2

      43.0

      75.66

      EfficientDet-D3

      45.8

      146.69

      EfficientDet-D4

      49.4

      232.33

      EfficientDet-D5

      50.7

      464.53

      EfficientDet-D6

      51.7

      631.41

      EfficientDet-D7

      53.7

      851.40

  • 训练参数说明

    名称

    默认值

    类型

    是否必填

    是否可修改

    描述

    mode

    train

    string

    是否边训练边验证,默认训练, 可选参数为train和train_and_eval。如果选择train,那么在模型训练结束的时候,统一做一次eval。如果选择train_and_eval,那么每次训练迭代一个epoch,就做一次eval,耗时比较久。

    model_name

    efficientdet-d0

    string

    EfficientDet训练选择的模型种类,目前可选项为efficientdet-d0、efficientdet-d1、efficientdet-d2、efficientdet-d3、efficientdet-d4、efficientdet-d5、efficientdet-d6、efficientdet-d7。

    说明:

    设置model_name尤其需要注意train_batch_size和eval_batch_size的大小,相同的batch size对于越高级别的EfficientDet,更加容易出现OOM,需要适当的减小使用的batch size;对于batch size较小的模型,需要加大epoch数来保证精度。

    train_batch_size

    8

    int

    每步训练的图片数量(单卡)。

    eval_batch_size

    8

    int

    每步验证的图片数量(单卡)。

    hparams

    moving_average_decay=0

    string

    键值对参数,可选择的有:

    • label_smoothing(默认是0,0)
    • box_loss_weight(默认是50)
    • learning_rate(默认是0.08)
    • lr_warmup_init(默认是0.008)
    • lr_warmup_epoch(默认是1)
    • first_lr_drop_epoch(默认是200)
    • second_lr_drop_epoch(默认是250)

    在使用的时候,需要用逗号隔开,中间不能有空格。必须包含moving_average_decay=0,例如,“moving_average_decay=0,label_smoothing=0.08”

    num_epochs

    100

    int

    模型训练最大的迭代数。

  • 训练输出文件

    训练完成后的输出文件如下。

    |- archive
      |- model.ckpt-xxx
      |- checkpoint
      |- best_eval.txt
    |- model    
      |- variables      
        |- variables.data-00000-of-00001      
        |- variables.index    
      |- customize_service.py    
      |- index    
      |- config.json    
      |- saved_model.pb  
    |- checkpoint  
    |- model.ckpt-xxx  
    |- ...  
    |- ...  
    |- events...  
    |- graph.pbtxt

GPU/CPU推理

“元模型来源”选择“从训练中选择”,选择训练作业及版本。

案例指导

GPU训练+CPU/GPU推理,可参考图像分类案例

分享:

    相关文档

    相关产品