Skip to content

Commit 84ef53f

Browse files
committed
Enable ParallelExecutor in SSD-MobileNet and Refine code.
1 parent 6fa8a94 commit 84ef53f

File tree

9 files changed

+218
-137
lines changed

9 files changed

+218
-137
lines changed

fluid/object_detection/data/prepare_voc_data.py renamed to fluid/object_detection/data/pascalvoc/create_list.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,5 @@ def prepare_filelist(devkit_dir, years, output_dir):
6060
ftest.write(item[0] + ' ' + item[1] + '\n')
6161

6262

63-
prepare_filelist(devkit_dir, years, '.')
63+
if __name__ == '__main__':
64+
prepare_filelist(devkit_dir, years, '.')
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
DIR="$( cd "$(dirname "$0")" ; pwd -P )"
2+
cd "$DIR"
3+
4+
# Download the data.
5+
echo "Downloading..."
6+
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
7+
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
8+
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
9+
# Extract the data.
10+
echo "Extractint..."
11+
tar -xf VOCtrainval_11-May-2012.tar
12+
tar -xf VOCtrainval_06-Nov-2007.tar
13+
tar -xf VOCtest_06-Nov-2007.tar
14+
15+
echo "Creating data lists..."
16+
python create_list.py

fluid/object_detection/load_model.py

Lines changed: 0 additions & 67 deletions
This file was deleted.

fluid/object_detection/mobilenet_ssd.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ def conv_bn(input,
1313
num_groups=1,
1414
act='relu',
1515
use_cudnn=True):
16-
parameter_attr = ParamAttr(initializer=MSRA())
16+
parameter_attr = ParamAttr(learning_rate=0.1, initializer=MSRA())
1717
conv = fluid.layers.conv2d(
1818
input=input,
1919
num_filters=num_filters,
@@ -25,11 +25,9 @@ def conv_bn(input,
2525
use_cudnn=use_cudnn,
2626
param_attr=parameter_attr,
2727
bias_attr=False)
28-
#parameter_attr = ParamAttr(learning_rate=0.1, initializer=MSRA())
29-
#bias_attr = ParamAttr(learning_rate=0.2)
30-
return fluid.layers.batch_norm(input=conv, act=act, epsilon=0.00001)
31-
#param_attr=parameter_attr,
32-
#bias_attr=bias_attr)
28+
parameter_attr = ParamAttr(learning_rate=0.1, initializer=MSRA())
29+
bias_attr = ParamAttr(learning_rate=0.2)
30+
return fluid.layers.batch_norm(input=conv, act=act)
3331

3432

3533
def depthwise_separable(input, num_filters1, num_filters2, num_groups, stride,
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
DIR="$( cd "$(dirname "$0")" ; pwd -P )"
2+
cd "$DIR"
3+
4+
# Download the data.
5+
echo "Downloading..."
6+
wget http://paddlemodels.bj.bcebos.com/ssd_mobilenet_coco.tar.gz
7+
echo "Extractint..."
8+
tar -xf ssd_mobilenet_coco.tar.gz
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
DIR="$( cd "$(dirname "$0")" ; pwd -P )"
2+
cd "$DIR"
3+
4+
# Download the data.
5+
echo "Downloading..."
6+
wget http://paddlemodels.bj.bcebos.com/mobilenet_imagenet.tar.gz
7+
echo "Extractint..."
8+
tar -xf ssd_mobilenet_imagenet.tar.gz

fluid/object_detection/reader.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,6 @@
2323
import time
2424
import copy
2525

26-
# cocoapi
27-
from pycocotools.coco import COCO
28-
from pycocotools.cocoeval import COCOeval
29-
3026

3127
class Settings(object):
3228
def __init__(self, dataset, toy, data_dir, label_file, resize_h, resize_w,
@@ -101,6 +97,10 @@ def img_mean(self):
10197
def _reader_creator(settings, file_list, mode, shuffle):
10298
def reader():
10399
if settings.dataset == 'coco':
100+
# cocoapi
101+
from pycocotools.coco import COCO
102+
from pycocotools.cocoeval import COCOeval
103+
104104
coco = COCO(file_list)
105105
image_ids = coco.getImgIds()
106106
images = coco.loadImgs(image_ids)
@@ -295,28 +295,28 @@ def draw_bounding_box_on_image(image,
295295

296296

297297
def train(settings, file_list, shuffle=True):
298+
file_list = os.path.join(settings.data_dir, file_list)
298299
if settings.dataset == 'coco':
299300
train_settings = copy.copy(settings)
300301
if '2014' in file_list:
301302
sub_dir = "train2014"
302303
elif '2017' in file_list:
303304
sub_dir = "train2017"
304305
train_settings.data_dir = os.path.join(settings.data_dir, sub_dir)
305-
file_list = os.path.join(settings.data_dir, file_list)
306306
return _reader_creator(train_settings, file_list, 'train', shuffle)
307307
elif settings.dataset == 'pascalvoc':
308308
return _reader_creator(settings, file_list, 'train', shuffle)
309309

310310

311311
def test(settings, file_list):
312+
file_list = os.path.join(settings.data_dir, file_list)
312313
if settings.dataset == 'coco':
313314
test_settings = copy.copy(settings)
314315
if '2014' in file_list:
315316
sub_dir = "val2014"
316317
elif '2017' in file_list:
317318
sub_dir = "val2017"
318319
test_settings.data_dir = os.path.join(settings.data_dir, sub_dir)
319-
file_list = os.path.join(settings.data_dir, file_list)
320320
return _reader_creator(test_settings, file_list, 'test', False)
321321
elif settings.dataset == 'pascalvoc':
322322
return _reader_creator(settings, file_list, 'test', False)

0 commit comments

Comments
 (0)