From 4195df9650089f187f0ba2259f1fb425dbf10215 Mon Sep 17 00:00:00 2001 From: wangguanzhong Date: Tue, 26 Nov 2019 19:21:54 +0800 Subject: [PATCH] Revert "change fluid.layers.data to fluid.data (#3966)" (#3990) This reverts commit fba30199636d9a3f90bbee45db96088b6db0b931. --- PaddleCV/PaddleDetection/docs/EXPORT_MODEL.md | 6 ++-- .../PaddleDetection/ppdet/data/data_feed.py | 24 +++++++-------- .../ppdet/modeling/model_input.py | 30 +++++++++---------- 3 files changed, 29 insertions(+), 31 deletions(-) diff --git a/PaddleCV/PaddleDetection/docs/EXPORT_MODEL.md b/PaddleCV/PaddleDetection/docs/EXPORT_MODEL.md index 2d06c760..614d87e2 100644 --- a/PaddleCV/PaddleDetection/docs/EXPORT_MODEL.md +++ b/PaddleCV/PaddleDetection/docs/EXPORT_MODEL.md @@ -14,14 +14,14 @@ 使用[训练/评估/推断](GETTING_STARTED_cn.md)中训练得到的模型进行试用,脚本如下 ```bash -# 导出FasterRCNN模型 +# 导出FasterRCNN模型, 模型中data层默认的shape为3x800x1333 python tools/export_model.py -c configs/faster_rcnn_r50_1x.yml \ --output_dir=./inference_model \ -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,5 +46,3 @@ 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 \ SSDTestFeed.image_shape=[3,300,300] ``` - -- 保存FPN系列模型时,需要保证上下采样维度一致,因此image_shape须设置为32的倍数 diff --git a/PaddleCV/PaddleDetection/ppdet/data/data_feed.py b/PaddleCV/PaddleDetection/ppdet/data/data_feed.py index 494db605..c384b2cb 100644 --- a/PaddleCV/PaddleDetection/ppdet/data/data_feed.py +++ b/PaddleCV/PaddleDetection/ppdet/data/data_feed.py @@ -452,7 +452,7 @@ class FasterRCNNTrainFeed(DataFeed): 'image', 'im_info', 'im_id', 'gt_box', 'gt_label', 'is_crowd' ], - image_shape=[None, 3, None, None], + image_shape=[3, 800, 1333], sample_transforms=[ DecodeImage(to_rgb=True), RandomFlipImage(prob=0.5), @@ -504,7 +504,7 @@ class FasterRCNNEvalFeed(DataFeed): COCO_VAL_IMAGE_DIR).__dict__, fields=['image', 'im_info', 'im_id', 'im_shape', 'gt_box', 'gt_label', 'is_difficult'], - image_shape=[None, 3, None, None], + image_shape=[3, 800, 1333], sample_transforms=[ DecodeImage(to_rgb=True), NormalizeImage(mean=[0.485, 0.456, 0.406], @@ -551,7 +551,7 @@ class FasterRCNNTestFeed(DataFeed): dataset=SimpleDataSet(COCO_VAL_ANNOTATION, COCO_VAL_IMAGE_DIR).__dict__, fields=['image', 'im_info', 'im_id', 'im_shape'], - image_shape=[None, 3, None, None], + image_shape=[3, 800, 1333], sample_transforms=[ DecodeImage(to_rgb=True), NormalizeImage(mean=[0.485, 0.456, 0.406], @@ -598,7 +598,7 @@ class MaskRCNNTrainFeed(DataFeed): 'image', 'im_info', 'im_id', 'gt_box', 'gt_label', 'is_crowd', 'gt_mask' ], - image_shape=[None, 3, None, None], + image_shape=[3, 800, 1333], sample_transforms=[ DecodeImage(to_rgb=True), RandomFlipImage(prob=0.5, is_mask_flip=True), @@ -644,7 +644,7 @@ class MaskRCNNEvalFeed(DataFeed): dataset=CocoDataSet(COCO_VAL_ANNOTATION, COCO_VAL_IMAGE_DIR).__dict__, fields=['image', 'im_info', 'im_id', 'im_shape'], - image_shape=[None, 3, None, None], + image_shape=[3, 800, 1333], sample_transforms=[ DecodeImage(to_rgb=True), NormalizeImage(mean=[0.485, 0.456, 0.406], @@ -696,7 +696,7 @@ class MaskRCNNTestFeed(DataFeed): dataset=SimpleDataSet(COCO_VAL_ANNOTATION, COCO_VAL_IMAGE_DIR).__dict__, fields=['image', 'im_info', 'im_id', 'im_shape'], - image_shape=[None, 3, None, None], + image_shape=[3, 800, 1333], sample_transforms=[ DecodeImage(to_rgb=True), NormalizeImage( @@ -740,7 +740,7 @@ class SSDTrainFeed(DataFeed): def __init__(self, dataset=VocDataSet().__dict__, fields=['image', 'gt_box', 'gt_label'], - image_shape=[None, 3, 300, 300], + image_shape=[3, 300, 300], sample_transforms=[ DecodeImage(to_rgb=True, with_mixup=False), NormalizeBox(), @@ -799,7 +799,7 @@ class SSDEvalFeed(DataFeed): dataset=VocDataSet(VOC_VAL_ANNOTATION).__dict__, fields=['image', 'im_shape', 'im_id', 'gt_box', 'gt_label', 'is_difficult'], - image_shape=[None, 3, 300, 300], + image_shape=[3, 300, 300], sample_transforms=[ DecodeImage(to_rgb=True, with_mixup=False), NormalizeBox(), @@ -844,7 +844,7 @@ class SSDTestFeed(DataFeed): def __init__(self, dataset=SimpleDataSet(VOC_VAL_ANNOTATION).__dict__, fields=['image', 'im_id', 'im_shape'], - image_shape=[None, 3, 300, 300], + image_shape=[3, 300, 300], sample_transforms=[ DecodeImage(to_rgb=True), ResizeImage(target_size=300, use_cv2=False, interp=1), @@ -890,7 +890,7 @@ class YoloTrainFeed(DataFeed): def __init__(self, dataset=CocoDataSet().__dict__, fields=['image', 'gt_box', 'gt_label', 'gt_score'], - image_shape=[None, 3, 608, 608], + image_shape=[3, 608, 608], sample_transforms=[ DecodeImage(to_rgb=True, with_mixup=True), MixupImage(alpha=1.5, beta=1.5), @@ -962,7 +962,7 @@ class YoloEvalFeed(DataFeed): COCO_VAL_IMAGE_DIR).__dict__, fields=['image', 'im_size', 'im_id', 'gt_box', 'gt_label', 'is_difficult'], - image_shape=[None, 3, 608, 608], + image_shape=[3, 608, 608], sample_transforms=[ DecodeImage(to_rgb=True), ResizeImage(target_size=608, interp=2), @@ -1018,7 +1018,7 @@ class YoloTestFeed(DataFeed): dataset=SimpleDataSet(COCO_VAL_ANNOTATION, COCO_VAL_IMAGE_DIR).__dict__, fields=['image', 'im_size', 'im_id'], - image_shape=[None, 3, 608, 608], + image_shape=[3, 608, 608], sample_transforms=[ DecodeImage(to_rgb=True), ResizeImage(target_size=608, interp=2), diff --git a/PaddleCV/PaddleDetection/ppdet/modeling/model_input.py b/PaddleCV/PaddleDetection/ppdet/modeling/model_input.py index 65f4860e..6b407cfb 100644 --- a/PaddleCV/PaddleDetection/ppdet/modeling/model_input.py +++ b/PaddleCV/PaddleDetection/ppdet/modeling/model_input.py @@ -25,16 +25,16 @@ __all__ = ['create_feed'] # yapf: disable feed_var_def = [ - {'name': 'im_info', 'shape': [None, 3], 'dtype': 'float32', 'lod_level': 0}, - {'name': 'im_id', 'shape': [None, 1], 'dtype': 'int32', 'lod_level': 0}, - {'name': 'gt_box', 'shape': [None, 4], 'dtype': 'float32', 'lod_level': 1}, - {'name': 'gt_label', 'shape': [None, 1], 'dtype': 'int32', 'lod_level': 1}, - {'name': 'is_crowd', 'shape': [None, 1], 'dtype': 'int32', 'lod_level': 1}, - {'name': 'gt_mask', 'shape': [None, 2], 'dtype': 'float32', 'lod_level': 3}, - {'name': 'is_difficult', 'shape': [None, 1], 'dtype': 'int32', 'lod_level': 1}, - {'name': 'gt_score', 'shape': [None, 1], 'dtype': 'float32', 'lod_level': 0}, - {'name': 'im_shape', 'shape': [None, 3], 'dtype': 'float32', 'lod_level': 0}, - {'name': 'im_size', 'shape': [None, 2], 'dtype': 'int32', 'lod_level': 0}, + {'name': 'im_info', 'shape': [3], 'dtype': 'float32', 'lod_level': 0}, + {'name': 'im_id', 'shape': [1], 'dtype': 'int32', 'lod_level': 0}, + {'name': 'gt_box', 'shape': [4], 'dtype': 'float32', 'lod_level': 1}, + {'name': 'gt_label', 'shape': [1], 'dtype': 'int32', 'lod_level': 1}, + {'name': 'is_crowd', 'shape': [1], 'dtype': 'int32', 'lod_level': 1}, + {'name': 'gt_mask', 'shape': [2], 'dtype': 'float32', 'lod_level': 3}, + {'name': 'is_difficult', 'shape': [1], 'dtype': 'int32', 'lod_level': 1}, + {'name': 'gt_score', 'shape': [1], 'dtype': 'float32', 'lod_level': 0}, + {'name': 'im_shape', 'shape': [3], 'dtype': 'float32', 'lod_level': 0}, + {'name': 'im_size', 'shape': [2], 'dtype': 'int32', 'lod_level': 0}, ] # yapf: enable @@ -52,10 +52,10 @@ def create_feed(feed, use_pyreader=True, sub_prog_feed=False): # tensor padding with 0 is used instead of LoD tensor when # num_max_boxes is set if getattr(feed, 'num_max_boxes', None) is not None: - feed_var_map['gt_label']['shape'] = [None, feed.num_max_boxes] - feed_var_map['gt_score']['shape'] = [None, feed.num_max_boxes] - feed_var_map['gt_box']['shape'] = [None, feed.num_max_boxes, 4] - feed_var_map['is_difficult']['shape'] = [None, feed.num_max_boxes] + feed_var_map['gt_label']['shape'] = [feed.num_max_boxes] + feed_var_map['gt_score']['shape'] = [feed.num_max_boxes] + feed_var_map['gt_box']['shape'] = [feed.num_max_boxes, 4] + feed_var_map['is_difficult']['shape'] = [feed.num_max_boxes] feed_var_map['gt_label']['lod_level'] = 0 feed_var_map['gt_score']['lod_level'] = 0 feed_var_map['gt_box']['lod_level'] = 0 @@ -113,7 +113,7 @@ def create_feed(feed, use_pyreader=True, sub_prog_feed=False): feed.fields = feed.fields + [box_name] feed_var_map[box_name] = sub_prog_feed - feed_vars = OrderedDict([(key, fluid.data( + feed_vars = OrderedDict([(key, fluid.layers.data( name=feed_var_map[key]['name'], shape=feed_var_map[key]['shape'], dtype=feed_var_map[key]['dtype'], -- GitLab