Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
hapi
提交
bf0abcf3
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看板
提交
bf0abcf3
编写于
4月 14, 2020
作者:
D
dengkaipeng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix yolo backbone
上级
308447ba
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
23 addition
and
7 deletion
+23
-7
examples/yolov3/.gitignore
examples/yolov3/.gitignore
+1
-0
examples/yolov3/README.md
examples/yolov3/README.md
+11
-3
examples/yolov3/main.py
examples/yolov3/main.py
+4
-2
examples/yolov3/pretrain_weights/download.sh
examples/yolov3/pretrain_weights/download.sh
+5
-0
hapi/vision/models/darknet.py
hapi/vision/models/darknet.py
+1
-1
hapi/vision/models/yolov3.py
hapi/vision/models/yolov3.py
+1
-1
未找到文件。
examples/yolov3/.gitignore
浏览文件 @
bf0abcf3
dataset/voc*
pretrain_weights/darknet53_pretrained.pdparams
examples/yolov3/README.md
浏览文件 @
bf0abcf3
...
...
@@ -99,9 +99,17 @@ YOLOv3 的网络结构由基础特征提取网络、multi-scale特征融合层
| ...
```
### 预训练权重下载
YOLOv3模型训练需下载骨干网络DarkNet53的预训练权重,可通过如下方式下载。
```
bash
sh pretrain_weights/download.sh
```
### 模型训练
数据
准备完毕
后,可使用
`main.py`
脚本启动训练和评估,如下脚本会自动每epoch交替进行训练和模型评估,并将checkpoint默认保存在
`yolo_checkpoint`
目录下。
数据
和预训练权重下载完成
后,可使用
`main.py`
脚本启动训练和评估,如下脚本会自动每epoch交替进行训练和模型评估,并将checkpoint默认保存在
`yolo_checkpoint`
目录下。
YOLOv3模型训练总batch_size为64训练,以下以使用4卡Tesla P40每卡batch_size为16训练介绍训练方式。对于静态图和动态图,多卡训练中
`--batch_size`
为每卡上的batch_size,即总batch_size为
`--batch_size`
乘以卡数。
...
...
@@ -117,7 +125,7 @@ python main.py --help
使用如下方式进行多卡训练:
```
bash
CUDA_VISIBLE_DEVICES
=
0,1,2,3 python
-m
paddle.distributed.launch main.py
--data
=
<path/to/dataset>
--batch_size
=
16
CUDA_VISIBLE_DEVICES
=
0,1,2,3 python
-m
paddle.distributed.launch main.py
--data
=
<path/to/dataset>
--batch_size
=
16
--pretrain_weights
=
./pretrain_weights/darknet53_pretrained
```
#### 动态图训练
...
...
@@ -127,7 +135,7 @@ CUDA_VISIBLE_DEVICES=0,1,2,3 python -m paddle.distributed.launch main.py --data=
使用如下方式进行多卡训练:
```
bash
CUDA_VISIBLE_DEVICES
=
0,1,2,3 python main.py
-m
paddle.distributed.launch
--data
=
<path/to/dataset>
--batch_size
=
16
-d
CUDA_VISIBLE_DEVICES
=
0,1,2,3 python main.py
-m
paddle.distributed.launch
--data
=
<path/to/dataset>
--batch_size
=
16
-d
--pretrain_weights
=
./pretrain_weights/darknet53_pretrained
```
...
...
examples/yolov3/main.py
浏览文件 @
bf0abcf3
...
...
@@ -28,6 +28,7 @@ from paddle.io import DataLoader
from
hapi.model
import
Model
,
Input
,
set_device
from
hapi.distributed
import
DistributedBatchSampler
from
hapi.datasets
import
COCODataset
from
hapi.download
import
get_weights_path
from
hapi.vision.transforms
import
*
from
hapi.vision.models
import
yolov3_darknet53
,
YoloLoss
...
...
@@ -124,7 +125,7 @@ def main():
model_mode
=
'eval'
if
FLAGS
.
eval_only
else
'train'
,
pretrained
=
pretrained
)
if
FLAGS
.
pretrain_weights
is
not
None
:
if
FLAGS
.
pretrain_weights
and
not
FLAGS
.
eval_only
:
model
.
load
(
FLAGS
.
pretrain_weights
,
skip_mismatch
=
True
,
reset_optimizer
=
True
)
optim
=
make_optimizer
(
len
(
batch_sampler
),
parameter_list
=
model
.
parameters
())
...
...
@@ -196,7 +197,8 @@ if __name__ == '__main__':
parser
.
add_argument
(
"-j"
,
"--num_workers"
,
default
=
4
,
type
=
int
,
help
=
"reader worker number"
)
parser
.
add_argument
(
"-p"
,
"--pretrain_weights"
,
default
=
None
,
type
=
str
,
"-p"
,
"--pretrain_weights"
,
default
=
"./pretrain_weights/darknet53_pretrained"
,
type
=
str
,
help
=
"path to pretrained weights"
)
parser
.
add_argument
(
"-r"
,
"--resume"
,
default
=
None
,
type
=
str
,
...
...
examples/yolov3/pretrain_weights/download.sh
0 → 100644
浏览文件 @
bf0abcf3
DIR
=
"
$(
cd
"
$(
dirname
"
$0
"
)
"
;
pwd
-P
)
"
cd
"
$DIR
"
echo
"Downloading https://paddlemodels.bj.bcebos.com/hapi/darknet53_pretrained.pdparams"
wget https://paddlemodels.bj.bcebos.com/hapi/darknet53_pretrained.pdparams
hapi/vision/models/darknet.py
浏览文件 @
bf0abcf3
...
...
@@ -136,7 +136,7 @@ class LayerWarp(fluid.dygraph.Layer):
DarkNet_cfg
=
{
53
:
([
1
,
2
,
8
,
8
,
4
])}
class
DarkNet
(
Model
):
class
DarkNet
(
fluid
.
dygraph
.
Layer
):
"""DarkNet model from
`"YOLOv3: An Incremental Improvement" <https://arxiv.org/abs/1804.02767>`_
...
...
hapi/vision/models/yolov3.py
浏览文件 @
bf0abcf3
...
...
@@ -118,7 +118,7 @@ class YOLOv3(Model):
self
.
nms_posk
=
100
self
.
draw_thresh
=
0.5
self
.
backbone
=
darknet53
(
pretrained
=
(
model_mode
==
'train'
)
)
self
.
backbone
=
darknet53
(
pretrained
=
False
)
self
.
block_outputs
=
[]
self
.
yolo_blocks
=
[]
self
.
route_blocks
=
[]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录