Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
hapi
提交
4c3effee
H
hapi
项目概览
PaddlePaddle
/
hapi
通知
11
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
7
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hapi
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
7
合并请求
7
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
4c3effee
编写于
4月 21, 2020
作者:
L
LielinJiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add darknet params
上级
9477ba35
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
30 addition
and
10 deletion
+30
-10
examples/image_classification/README.MD
examples/image_classification/README.MD
+2
-1
examples/image_classification/imagenet_dataset.py
examples/image_classification/imagenet_dataset.py
+8
-3
examples/image_classification/main.py
examples/image_classification/main.py
+17
-4
hapi/vision/models/darknet.py
hapi/vision/models/darknet.py
+3
-2
未找到文件。
examples/image_classification/README.MD
浏览文件 @
4c3effee
...
...
@@ -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 |
|
[
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 |
|
[
darknet53
](
https://paddle-hapi.bj.bcebos.com/models/darknet53.pdparams
)
| 78.43 | 94.24 |
上述
模型的复现参数请参考scripts下的脚本。
上述
部分模型的复现参数请参考scripts下的脚本。需要注意的是darknet要使用image size为256的输入来预测, 即
```--image-size 256```
## 参考文献
...
...
examples/image_classification/imagenet_dataset.py
浏览文件 @
4c3effee
...
...
@@ -24,7 +24,11 @@ from paddle import fluid
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
)
self
.
mode
=
mode
...
...
@@ -32,13 +36,14 @@ class ImageNetDataset(DatasetFolder):
mean
=
[
123.675
,
116.28
,
103.53
],
std
=
[
58.395
,
57.120
,
57.375
])
if
self
.
mode
==
'train'
:
self
.
transform
=
transforms
.
Compose
([
transforms
.
RandomResizedCrop
(
224
),
transforms
.
RandomResizedCrop
(
image_size
),
transforms
.
RandomHorizontalFlip
(),
transforms
.
Permute
(
mode
=
'CHW'
),
normalize
])
else
:
self
.
transform
=
transforms
.
Compose
([
transforms
.
Resize
(
256
),
transforms
.
CenterCrop
(
224
),
transforms
.
Resize
(
resize_short_size
),
transforms
.
CenterCrop
(
image_size
),
transforms
.
Permute
(
mode
=
'CHW'
),
normalize
])
...
...
examples/image_classification/main.py
浏览文件 @
4c3effee
...
...
@@ -18,8 +18,6 @@ from __future__ import print_function
import
argparse
import
contextlib
import
os
import
sys
sys
.
path
.
append
(
'../'
)
import
time
import
math
...
...
@@ -89,8 +87,16 @@ def main():
labels
=
[
Input
([
None
,
1
],
'int64'
,
name
=
'label'
)]
train_dataset
=
ImageNetDataset
(
os
.
path
.
join
(
FLAGS
.
data
,
'train'
),
mode
=
'train'
)
val_dataset
=
ImageNetDataset
(
os
.
path
.
join
(
FLAGS
.
data
,
'val'
),
mode
=
'val'
)
os
.
path
.
join
(
FLAGS
.
data
,
'train'
),
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
(
np
.
ceil
(
...
...
@@ -176,6 +182,13 @@ if __name__ == '__main__':
parser
.
add_argument
(
"--weight-decay"
,
default
=
1e-4
,
type
=
float
,
help
=
"weight decay"
)
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
()
assert
FLAGS
.
data
,
"error: must provide data path"
main
()
hapi/vision/models/darknet.py
浏览文件 @
4c3effee
...
...
@@ -26,8 +26,8 @@ __all__ = ['DarkNet', 'ConvBNLayer', 'darknet53']
# {num_layers: (url, md5)}
pretrain_infos
=
{
53
:
(
'https://paddle
models.bj.bcebos.com/hapi
/darknet53.pdparams'
,
'
2506357a5c31e865785112fc614a487d
'
)
53
:
(
'https://paddle
-hapi.bj.bcebos.com/models
/darknet53.pdparams'
,
'
ca506a90e2efecb9a2093f8ada808708
'
)
}
...
...
@@ -67,6 +67,7 @@ class ConvBNLayer(fluid.dygraph.Layer):
def
forward
(
self
,
inputs
):
out
=
self
.
conv
(
inputs
)
out
=
self
.
batch_norm
(
out
)
# out = fluid.layers.relu(out)
if
self
.
act
==
'leaky'
:
out
=
fluid
.
layers
.
leaky_relu
(
x
=
out
,
alpha
=
0.1
)
return
out
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录