提交 4c3effee 编写于 作者: L LielinJiang

add darknet params

上级 9477ba35
...@@ -85,8 +85,9 @@ CUDA_VISIBLE_DEVICES=0,1,2,3 python -m paddle.distributed.launch main.py --arch ...@@ -85,8 +85,9 @@ CUDA_VISIBLE_DEVICES=0,1,2,3 python -m paddle.distributed.launch main.py --arch
| [vgg16](https://paddle-hapi.bj.bcebos.com/models/vgg16.pdparams) | 71.92 | 90.65 | | [vgg16](https://paddle-hapi.bj.bcebos.com/models/vgg16.pdparams) | 71.92 | 90.65 |
| [mobilenet_v1](https://paddle-hapi.bj.bcebos.com/models/mobilenet_v1_x1.0.pdparams) | 71.16 | 89.89 | | [mobilenet_v1](https://paddle-hapi.bj.bcebos.com/models/mobilenet_v1_x1.0.pdparams) | 71.16 | 89.89 |
| [mobilenet_v2](https://paddle-hapi.bj.bcebos.com/models/mobilenet_v2_x1.0.pdparams) | 72.30 | 90.74 | | [mobilenet_v2](https://paddle-hapi.bj.bcebos.com/models/mobilenet_v2_x1.0.pdparams) | 72.30 | 90.74 |
| [darknet53](https://paddle-hapi.bj.bcebos.com/models/darknet53.pdparams) | 78.43 | 94.24 |
上述模型的复现参数请参考scripts下的脚本。 上述部分模型的复现参数请参考scripts下的脚本。需要注意的是darknet要使用image size为256的输入来预测, 即```--image-size 256```
## 参考文献 ## 参考文献
......
...@@ -24,7 +24,11 @@ from paddle import fluid ...@@ -24,7 +24,11 @@ from paddle import fluid
class ImageNetDataset(DatasetFolder): class ImageNetDataset(DatasetFolder):
def __init__(self, path, mode='train'): def __init__(self,
path,
mode='train',
image_size=224,
resize_short_size=256):
super(ImageNetDataset, self).__init__(path) super(ImageNetDataset, self).__init__(path)
self.mode = mode self.mode = mode
...@@ -32,13 +36,14 @@ class ImageNetDataset(DatasetFolder): ...@@ -32,13 +36,14 @@ class ImageNetDataset(DatasetFolder):
mean=[123.675, 116.28, 103.53], std=[58.395, 57.120, 57.375]) mean=[123.675, 116.28, 103.53], std=[58.395, 57.120, 57.375])
if self.mode == 'train': if self.mode == 'train':
self.transform = transforms.Compose([ self.transform = transforms.Compose([
transforms.RandomResizedCrop(224), transforms.RandomResizedCrop(image_size),
transforms.RandomHorizontalFlip(), transforms.RandomHorizontalFlip(),
transforms.Permute(mode='CHW'), normalize transforms.Permute(mode='CHW'), normalize
]) ])
else: else:
self.transform = transforms.Compose([ self.transform = transforms.Compose([
transforms.Resize(256), transforms.CenterCrop(224), transforms.Resize(resize_short_size),
transforms.CenterCrop(image_size),
transforms.Permute(mode='CHW'), normalize transforms.Permute(mode='CHW'), normalize
]) ])
......
...@@ -18,8 +18,6 @@ from __future__ import print_function ...@@ -18,8 +18,6 @@ from __future__ import print_function
import argparse import argparse
import contextlib import contextlib
import os import os
import sys
sys.path.append('../')
import time import time
import math import math
...@@ -89,8 +87,16 @@ def main(): ...@@ -89,8 +87,16 @@ def main():
labels = [Input([None, 1], 'int64', name='label')] labels = [Input([None, 1], 'int64', name='label')]
train_dataset = ImageNetDataset( train_dataset = ImageNetDataset(
os.path.join(FLAGS.data, 'train'), mode='train') os.path.join(FLAGS.data, 'train'),
val_dataset = ImageNetDataset(os.path.join(FLAGS.data, 'val'), mode='val') mode='train',
image_size=FLAGS.image_size,
resize_short_size=FLAGS.resize_short_size)
val_dataset = ImageNetDataset(
os.path.join(FLAGS.data, 'val'),
mode='val',
image_size=FLAGS.image_size,
resize_short_size=FLAGS.resize_short_size)
optim = make_optimizer( optim = make_optimizer(
np.ceil( np.ceil(
...@@ -176,6 +182,13 @@ if __name__ == '__main__': ...@@ -176,6 +182,13 @@ if __name__ == '__main__':
parser.add_argument( parser.add_argument(
"--weight-decay", default=1e-4, type=float, help="weight decay") "--weight-decay", default=1e-4, type=float, help="weight decay")
parser.add_argument("--momentum", default=0.9, type=float, help="momentum") parser.add_argument("--momentum", default=0.9, type=float, help="momentum")
parser.add_argument(
"--image-size", default=224, type=int, help="intput image size")
parser.add_argument(
"--resize-short-size",
default=256,
type=float,
help="short size of keeping ratio resize")
FLAGS = parser.parse_args() FLAGS = parser.parse_args()
assert FLAGS.data, "error: must provide data path" assert FLAGS.data, "error: must provide data path"
main() main()
...@@ -26,8 +26,8 @@ __all__ = ['DarkNet', 'ConvBNLayer', 'darknet53'] ...@@ -26,8 +26,8 @@ __all__ = ['DarkNet', 'ConvBNLayer', 'darknet53']
# {num_layers: (url, md5)} # {num_layers: (url, md5)}
pretrain_infos = { pretrain_infos = {
53: ('https://paddlemodels.bj.bcebos.com/hapi/darknet53.pdparams', 53: ('https://paddle-hapi.bj.bcebos.com/models/darknet53.pdparams',
'2506357a5c31e865785112fc614a487d') 'ca506a90e2efecb9a2093f8ada808708')
} }
...@@ -67,6 +67,7 @@ class ConvBNLayer(fluid.dygraph.Layer): ...@@ -67,6 +67,7 @@ class ConvBNLayer(fluid.dygraph.Layer):
def forward(self, inputs): def forward(self, inputs):
out = self.conv(inputs) out = self.conv(inputs)
out = self.batch_norm(out) out = self.batch_norm(out)
# out = fluid.layers.relu(out)
if self.act == 'leaky': if self.act == 'leaky':
out = fluid.layers.leaky_relu(x=out, alpha=0.1) out = fluid.layers.leaky_relu(x=out, alpha=0.1)
return out return out
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册