diff --git a/fluid/object_detection/mobilenet_ssd.py b/fluid/object_detection/mobilenet_ssd.py index c9a8e7793fc4db347243a6501544844bc37dff36..21869647aa261a1baacbe934453c8af4416b75b7 100644 --- a/fluid/object_detection/mobilenet_ssd.py +++ b/fluid/object_detection/mobilenet_ssd.py @@ -13,7 +13,7 @@ def conv_bn(input, num_groups=1, act='relu', use_cudnn=True): - parameter_attr = ParamAttr(initializer=MSRA()) + parameter_attr = ParamAttr(learning_rate=0.1, initializer=MSRA()) conv = fluid.layers.conv2d( input=input, num_filters=num_filters, @@ -25,7 +25,14 @@ def conv_bn(input, use_cudnn=use_cudnn, param_attr=parameter_attr, bias_attr=False) - return fluid.layers.batch_norm(input=conv, act=act, epsilon=0.00001) + parameter_attr = ParamAttr(learning_rate=0.1, initializer=MSRA()) + bias_attr = ParamAttr(learning_rate=0.2) + return fluid.layers.batch_norm( + input=conv, + act=act, + epsilon=0.00001, + param_attr=parameter_attr, + bias_attr=bias_attr) def depthwise_separable(input, num_filters1, num_filters2, num_groups, stride, diff --git a/fluid/object_detection/reader.py b/fluid/object_detection/reader.py index 29f218941029eee34acf4492911b58902f7f0c9c..4e680c29997b432c14b92ea641aa9f956de41292 100644 --- a/fluid/object_detection/reader.py +++ b/fluid/object_detection/reader.py @@ -150,6 +150,7 @@ def _reader_creator(settings, file_list, mode, shuffle): img = np.swapaxes(img, 1, 2) img = np.swapaxes(img, 1, 0) + img = img[[2, 1, 0], :, :] img = img.astype('float32') img -= settings.img_mean img = img.flatten() diff --git a/fluid/object_detection/train.py b/fluid/object_detection/train.py index 0ad7f59e85f475b395a97812d93f4c639ca00bc3..9d2dbadccf4dd33db1dee2b71fcdcfa63f4246e8 100644 --- a/fluid/object_detection/train.py +++ b/fluid/object_detection/train.py @@ -45,13 +45,14 @@ def train(train_file_list, evaluate_difficult=False, ap_version='11point') - optimizer = fluid.optimizer.DecayedAdagrad( + optimizer = fluid.optimizer.Momentum( learning_rate=fluid.layers.exponential_decay( learning_rate=learning_rate, decay_steps=40000, decay_rate=0.1, staircase=True), - regularization=fluid.regularizer.L2Decay(0.0005), ) + momentum=0.9, + regularization=fluid.regularizer.L2Decay(0.00005), ) optimizer.minimize(loss) @@ -59,7 +60,7 @@ def train(train_file_list, exe = fluid.Executor(place) exe.run(fluid.default_startup_program()) - load_model.load_and_set_vars(place) + load_model.load_paddlev1_vars(place) train_reader = paddle.batch( reader.train(data_args, train_file_list), batch_size=batch_size) test_reader = paddle.batch(