未验证 提交 492b4e91 编写于 作者: W wangguanzhong 提交者: GitHub

change fluid.layers.data to fluid.data (#34)

* change fluid.layers.data to fluid.data

* fix export_model doc
上级 703d379c
...@@ -14,14 +14,14 @@ ...@@ -14,14 +14,14 @@
使用[训练/评估/推断](GETTING_STARTED_cn.md)中训练得到的模型进行试用,脚本如下 使用[训练/评估/推断](GETTING_STARTED_cn.md)中训练得到的模型进行试用,脚本如下
```bash ```bash
# 导出FasterRCNN模型, 模型中data层默认的shape为3x800x1333 # 导出FasterRCNN模型
python tools/export_model.py -c configs/faster_rcnn_r50_1x.yml \ python tools/export_model.py -c configs/faster_rcnn_r50_1x.yml \
--output_dir=./inference_model \ --output_dir=./inference_model \
-o weights=output/faster_rcnn_r50_1x/model_final \ -o weights=output/faster_rcnn_r50_1x/model_final \
``` ```
预测模型会导出到`inference_model/faster_rcnn_r50_1x`目录下,模型名和参数名分别为`__model__``__params__` - 预测模型会导出到`inference_model/faster_rcnn_r50_1x`目录下,模型名和参数名分别为`__model__``__params__`
## 设置导出模型的输入大小 ## 设置导出模型的输入大小
...@@ -46,3 +46,5 @@ python tools/export_model.py -c configs/ssd/ssd_mobilenet_v1_voc.yml \ ...@@ -46,3 +46,5 @@ python tools/export_model.py -c configs/ssd/ssd_mobilenet_v1_voc.yml \
-o weights= https://paddlemodels.bj.bcebos.com/object_detection/ssd_mobilenet_v1_voc.tar \ -o weights= https://paddlemodels.bj.bcebos.com/object_detection/ssd_mobilenet_v1_voc.tar \
SSDTestFeed.image_shape=[3,300,300] SSDTestFeed.image_shape=[3,300,300]
``` ```
- 保存FPN系列模型时,需要保证上下采样维度一致,因此image_shape须设置为32的倍数
...@@ -453,7 +453,7 @@ class FasterRCNNTrainFeed(DataFeed): ...@@ -453,7 +453,7 @@ class FasterRCNNTrainFeed(DataFeed):
'image', 'im_info', 'im_id', 'gt_box', 'gt_label', 'image', 'im_info', 'im_id', 'gt_box', 'gt_label',
'is_crowd' 'is_crowd'
], ],
image_shape=[3, 800, 1333], image_shape=[None, 3, None, None],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True), DecodeImage(to_rgb=True),
RandomFlipImage(prob=0.5), RandomFlipImage(prob=0.5),
...@@ -505,7 +505,7 @@ class FasterRCNNEvalFeed(DataFeed): ...@@ -505,7 +505,7 @@ class FasterRCNNEvalFeed(DataFeed):
COCO_VAL_IMAGE_DIR).__dict__, COCO_VAL_IMAGE_DIR).__dict__,
fields=['image', 'im_info', 'im_id', 'im_shape', 'gt_box', fields=['image', 'im_info', 'im_id', 'im_shape', 'gt_box',
'gt_label', 'is_difficult'], 'gt_label', 'is_difficult'],
image_shape=[3, 800, 1333], image_shape=[None, 3, None, None],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True), DecodeImage(to_rgb=True),
NormalizeImage(mean=[0.485, 0.456, 0.406], NormalizeImage(mean=[0.485, 0.456, 0.406],
...@@ -552,7 +552,7 @@ class FasterRCNNTestFeed(DataFeed): ...@@ -552,7 +552,7 @@ class FasterRCNNTestFeed(DataFeed):
dataset=SimpleDataSet(COCO_VAL_ANNOTATION, dataset=SimpleDataSet(COCO_VAL_ANNOTATION,
COCO_VAL_IMAGE_DIR).__dict__, COCO_VAL_IMAGE_DIR).__dict__,
fields=['image', 'im_info', 'im_id', 'im_shape'], fields=['image', 'im_info', 'im_id', 'im_shape'],
image_shape=[3, 800, 1333], image_shape=[None, 3, None, None],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True), DecodeImage(to_rgb=True),
NormalizeImage(mean=[0.485, 0.456, 0.406], NormalizeImage(mean=[0.485, 0.456, 0.406],
...@@ -600,7 +600,7 @@ class MaskRCNNTrainFeed(DataFeed): ...@@ -600,7 +600,7 @@ class MaskRCNNTrainFeed(DataFeed):
'image', 'im_info', 'im_id', 'gt_box', 'gt_label', 'image', 'im_info', 'im_id', 'gt_box', 'gt_label',
'is_crowd', 'gt_mask' 'is_crowd', 'gt_mask'
], ],
image_shape=[3, 800, 1333], image_shape=[None, 3, None, None],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True), DecodeImage(to_rgb=True),
RandomFlipImage(prob=0.5, is_mask_flip=True), RandomFlipImage(prob=0.5, is_mask_flip=True),
...@@ -646,7 +646,7 @@ class MaskRCNNEvalFeed(DataFeed): ...@@ -646,7 +646,7 @@ class MaskRCNNEvalFeed(DataFeed):
dataset=CocoDataSet(COCO_VAL_ANNOTATION, dataset=CocoDataSet(COCO_VAL_ANNOTATION,
COCO_VAL_IMAGE_DIR).__dict__, COCO_VAL_IMAGE_DIR).__dict__,
fields=['image', 'im_info', 'im_id', 'im_shape'], fields=['image', 'im_info', 'im_id', 'im_shape'],
image_shape=[3, 800, 1333], image_shape=[None, 3, None, None],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True), DecodeImage(to_rgb=True),
NormalizeImage(mean=[0.485, 0.456, 0.406], NormalizeImage(mean=[0.485, 0.456, 0.406],
...@@ -698,7 +698,7 @@ class MaskRCNNTestFeed(DataFeed): ...@@ -698,7 +698,7 @@ class MaskRCNNTestFeed(DataFeed):
dataset=SimpleDataSet(COCO_VAL_ANNOTATION, dataset=SimpleDataSet(COCO_VAL_ANNOTATION,
COCO_VAL_IMAGE_DIR).__dict__, COCO_VAL_IMAGE_DIR).__dict__,
fields=['image', 'im_info', 'im_id', 'im_shape'], fields=['image', 'im_info', 'im_id', 'im_shape'],
image_shape=[3, 800, 1333], image_shape=[None, 3, None, None],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True), DecodeImage(to_rgb=True),
NormalizeImage( NormalizeImage(
...@@ -743,7 +743,7 @@ class SSDTrainFeed(DataFeed): ...@@ -743,7 +743,7 @@ class SSDTrainFeed(DataFeed):
def __init__(self, def __init__(self,
dataset=VocDataSet().__dict__, dataset=VocDataSet().__dict__,
fields=['image', 'gt_box', 'gt_label'], fields=['image', 'gt_box', 'gt_label'],
image_shape=[3, 300, 300], image_shape=[None, 3, 300, 300],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True, with_mixup=False), DecodeImage(to_rgb=True, with_mixup=False),
NormalizeBox(), NormalizeBox(),
...@@ -802,7 +802,7 @@ class SSDEvalFeed(DataFeed): ...@@ -802,7 +802,7 @@ class SSDEvalFeed(DataFeed):
dataset=VocDataSet(VOC_VAL_ANNOTATION).__dict__, dataset=VocDataSet(VOC_VAL_ANNOTATION).__dict__,
fields=['image', 'im_shape', 'im_id', 'gt_box', fields=['image', 'im_shape', 'im_id', 'gt_box',
'gt_label', 'is_difficult'], 'gt_label', 'is_difficult'],
image_shape=[3, 300, 300], image_shape=[None, 3, 300, 300],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True, with_mixup=False), DecodeImage(to_rgb=True, with_mixup=False),
NormalizeBox(), NormalizeBox(),
...@@ -847,7 +847,7 @@ class SSDTestFeed(DataFeed): ...@@ -847,7 +847,7 @@ class SSDTestFeed(DataFeed):
def __init__(self, def __init__(self,
dataset=SimpleDataSet(VOC_VAL_ANNOTATION).__dict__, dataset=SimpleDataSet(VOC_VAL_ANNOTATION).__dict__,
fields=['image', 'im_id', 'im_shape'], fields=['image', 'im_id', 'im_shape'],
image_shape=[3, 300, 300], image_shape=[None, 3, 300, 300],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True), DecodeImage(to_rgb=True),
ResizeImage(target_size=300, use_cv2=False, interp=1), ResizeImage(target_size=300, use_cv2=False, interp=1),
...@@ -893,7 +893,7 @@ class YoloTrainFeed(DataFeed): ...@@ -893,7 +893,7 @@ class YoloTrainFeed(DataFeed):
def __init__(self, def __init__(self,
dataset=CocoDataSet().__dict__, dataset=CocoDataSet().__dict__,
fields=['image', 'gt_box', 'gt_label', 'gt_score'], fields=['image', 'gt_box', 'gt_label', 'gt_score'],
image_shape=[3, 608, 608], image_shape=[None, 3, 608, 608],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True, with_mixup=True), DecodeImage(to_rgb=True, with_mixup=True),
MixupImage(alpha=1.5, beta=1.5), MixupImage(alpha=1.5, beta=1.5),
...@@ -955,7 +955,7 @@ class YoloEvalFeed(DataFeed): ...@@ -955,7 +955,7 @@ class YoloEvalFeed(DataFeed):
COCO_VAL_IMAGE_DIR).__dict__, COCO_VAL_IMAGE_DIR).__dict__,
fields=['image', 'im_size', 'im_id', 'gt_box', fields=['image', 'im_size', 'im_id', 'gt_box',
'gt_label', 'is_difficult'], 'gt_label', 'is_difficult'],
image_shape=[3, 608, 608], image_shape=[None, 3, 608, 608],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True), DecodeImage(to_rgb=True),
ResizeImage(target_size=608, interp=2), ResizeImage(target_size=608, interp=2),
...@@ -1013,7 +1013,7 @@ class YoloTestFeed(DataFeed): ...@@ -1013,7 +1013,7 @@ class YoloTestFeed(DataFeed):
dataset=SimpleDataSet(COCO_VAL_ANNOTATION, dataset=SimpleDataSet(COCO_VAL_ANNOTATION,
COCO_VAL_IMAGE_DIR).__dict__, COCO_VAL_IMAGE_DIR).__dict__,
fields=['image', 'im_size', 'im_id'], fields=['image', 'im_size', 'im_id'],
image_shape=[3, 608, 608], image_shape=[None, 3, 608, 608],
sample_transforms=[ sample_transforms=[
DecodeImage(to_rgb=True), DecodeImage(to_rgb=True),
ResizeImage(target_size=608, interp=2), ResizeImage(target_size=608, interp=2),
......
...@@ -25,16 +25,16 @@ __all__ = ['create_feed'] ...@@ -25,16 +25,16 @@ __all__ = ['create_feed']
# yapf: disable # yapf: disable
feed_var_def = [ feed_var_def = [
{'name': 'im_info', 'shape': [3], 'dtype': 'float32', 'lod_level': 0}, {'name': 'im_info', 'shape': [None, 3], 'dtype': 'float32', 'lod_level': 0},
{'name': 'im_id', 'shape': [1], 'dtype': 'int32', 'lod_level': 0}, {'name': 'im_id', 'shape': [None, 1], 'dtype': 'int32', 'lod_level': 0},
{'name': 'gt_box', 'shape': [4], 'dtype': 'float32', 'lod_level': 1}, {'name': 'gt_box', 'shape': [None, 4], 'dtype': 'float32', 'lod_level': 1},
{'name': 'gt_label', 'shape': [1], 'dtype': 'int32', 'lod_level': 1}, {'name': 'gt_label', 'shape': [None, 1], 'dtype': 'int32', 'lod_level': 1},
{'name': 'is_crowd', 'shape': [1], 'dtype': 'int32', 'lod_level': 1}, {'name': 'is_crowd', 'shape': [None, 1], 'dtype': 'int32', 'lod_level': 1},
{'name': 'gt_mask', 'shape': [2], 'dtype': 'float32', 'lod_level': 3}, {'name': 'gt_mask', 'shape': [None, 2], 'dtype': 'float32', 'lod_level': 3},
{'name': 'is_difficult', 'shape': [1], 'dtype': 'int32', 'lod_level': 1}, {'name': 'is_difficult', 'shape': [None, 1], 'dtype': 'int32', 'lod_level': 1},
{'name': 'gt_score', 'shape': [1], 'dtype': 'float32', 'lod_level': 0}, {'name': 'gt_score', 'shape': [None, 1], 'dtype': 'float32', 'lod_level': 0},
{'name': 'im_shape', 'shape': [3], 'dtype': 'float32', 'lod_level': 0}, {'name': 'im_shape', 'shape': [None, 3], 'dtype': 'float32', 'lod_level': 0},
{'name': 'im_size', 'shape': [2], 'dtype': 'int32', 'lod_level': 0}, {'name': 'im_size', 'shape': [None, 2], 'dtype': 'int32', 'lod_level': 0},
] ]
# yapf: enable # yapf: enable
...@@ -52,10 +52,10 @@ def create_feed(feed, iterable=False, sub_prog_feed=False): ...@@ -52,10 +52,10 @@ def create_feed(feed, iterable=False, sub_prog_feed=False):
# tensor padding with 0 is used instead of LoD tensor when # tensor padding with 0 is used instead of LoD tensor when
# num_max_boxes is set # num_max_boxes is set
if getattr(feed, 'num_max_boxes', None) is not None: if getattr(feed, 'num_max_boxes', None) is not None:
feed_var_map['gt_label']['shape'] = [feed.num_max_boxes] feed_var_map['gt_label']['shape'] = [None, feed.num_max_boxes]
feed_var_map['gt_score']['shape'] = [feed.num_max_boxes] feed_var_map['gt_score']['shape'] = [None, feed.num_max_boxes]
feed_var_map['gt_box']['shape'] = [feed.num_max_boxes, 4] feed_var_map['gt_box']['shape'] = [None, feed.num_max_boxes, 4]
feed_var_map['is_difficult']['shape'] = [feed.num_max_boxes] feed_var_map['is_difficult']['shape'] = [None, feed.num_max_boxes]
feed_var_map['gt_label']['lod_level'] = 0 feed_var_map['gt_label']['lod_level'] = 0
feed_var_map['gt_score']['lod_level'] = 0 feed_var_map['gt_score']['lod_level'] = 0
feed_var_map['gt_box']['lod_level'] = 0 feed_var_map['gt_box']['lod_level'] = 0
...@@ -113,7 +113,7 @@ def create_feed(feed, iterable=False, sub_prog_feed=False): ...@@ -113,7 +113,7 @@ def create_feed(feed, iterable=False, sub_prog_feed=False):
feed.fields = feed.fields + [box_name] feed.fields = feed.fields + [box_name]
feed_var_map[box_name] = sub_prog_feed feed_var_map[box_name] = sub_prog_feed
feed_vars = OrderedDict([(key, fluid.layers.data( feed_vars = OrderedDict([(key, fluid.data(
name=feed_var_map[key]['name'], name=feed_var_map[key]['name'],
shape=feed_var_map[key]['shape'], shape=feed_var_map[key]['shape'],
dtype=feed_var_map[key]['dtype'], dtype=feed_var_map[key]['dtype'],
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册