Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
last_winter
yolov4-pytorch
提交
cb538495
Y
yolov4-pytorch
项目概览
last_winter
/
yolov4-pytorch
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
yolov4-pytorch
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
cb538495
编写于
6月 06, 2020
作者:
B
Bubbliiiing
提交者:
GitHub
6月 06, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add files via upload
上级
a78c8232
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
35 addition
and
12 deletion
+35
-12
train.py
train.py
+35
-12
未找到文件。
train.py
浏览文件 @
cb538495
...
...
@@ -10,6 +10,8 @@ import torch.nn as nn
import
torch.optim
as
optim
import
torch.nn.functional
as
F
import
torch.backends.cudnn
as
cudnn
from
torch.utils.data
import
DataLoader
from
utils.dataloader
import
yolo_dataset_collate
,
YoloDataset
from
nets.yolo_training
import
YOLOLoss
,
Generator
from
nets.yolo4
import
YoloBody
...
...
@@ -34,10 +36,10 @@ def get_anchors(anchors_path):
def
fit_ont_epoch
(
net
,
yolo_losses
,
epoch
,
epoch_size
,
epoch_size_val
,
gen
,
genval
,
Epoch
,
cuda
):
total_loss
=
0
val_loss
=
0
start_time
=
time
.
time
()
for
iteration
,
batch
in
enumerate
(
gen
):
if
iteration
>=
epoch_size
:
break
start_time
=
time
.
time
()
images
,
targets
=
batch
[
0
],
batch
[
1
]
with
torch
.
no_grad
():
if
cuda
:
...
...
@@ -60,6 +62,7 @@ def fit_ont_epoch(net,yolo_losses,epoch,epoch_size,epoch_size_val,gen,genval,Epo
waste_time
=
time
.
time
()
-
start_time
print
(
'
\n
Epoch:'
+
str
(
epoch
+
1
)
+
'/'
+
str
(
Epoch
))
print
(
'iter:'
+
str
(
iteration
)
+
'/'
+
str
(
epoch_size
)
+
' || Total Loss: %.4f || %.4fs/step'
%
(
total_loss
/
(
iteration
+
1
),
waste_time
))
start_time
=
time
.
time
()
print
(
'Start Validation'
)
for
iteration
,
batch
in
enumerate
(
genval
):
...
...
@@ -106,6 +109,10 @@ if __name__ == "__main__":
# 用于设定是否使用cuda
Cuda
=
True
smoooth_label
=
0
#-------------------------------#
# Dataloder的使用
#-------------------------------#
Use_Data_Loader
=
True
annotation_path
=
'2007_train.txt'
#-------------------------------#
...
...
@@ -165,11 +172,19 @@ if __name__ == "__main__":
else
:
lr_scheduler
=
optim
.
lr_scheduler
.
StepLR
(
optimizer
,
step_size
=
1
,
gamma
=
0.9
)
gen
=
Generator
(
Batch_size
,
lines
[:
num_train
],
(
input_shape
[
0
],
input_shape
[
1
])).
generate
(
mosaic
=
mosaic
)
gen_val
=
Generator
(
Batch_size
,
lines
[
num_train
:],
(
input_shape
[
0
],
input_shape
[
1
])).
generate
(
mosaic
=
False
)
if
Use_Data_Loader
:
train_dataset
=
YoloDataset
(
lines
[:
num_train
],
(
input_shape
[
0
],
input_shape
[
1
]),
mosaic
=
mosaic
)
val_dataset
=
YoloDataset
(
lines
[
num_train
:],
(
input_shape
[
0
],
input_shape
[
1
]),
mosaic
=
False
)
gen
=
DataLoader
(
train_dataset
,
batch_size
=
Batch_size
,
num_workers
=
8
,
pin_memory
=
True
,
drop_last
=
True
,
collate_fn
=
yolo_dataset_collate
)
gen_val
=
DataLoader
(
val_dataset
,
batch_size
=
Batch_size
,
num_workers
=
8
,
pin_memory
=
True
,
drop_last
=
True
,
collate_fn
=
yolo_dataset_collate
)
else
:
gen
=
Generator
(
Batch_size
,
lines
[:
num_train
],
(
input_shape
[
0
],
input_shape
[
1
])).
generate
(
mosaic
=
mosaic
)
gen_val
=
Generator
(
Batch_size
,
lines
[
num_train
:],
(
input_shape
[
0
],
input_shape
[
1
])).
generate
(
mosaic
=
False
)
epoch_size
=
max
(
1
,
num_train
//
Batch_size
)
epoch_size_val
=
num_val
//
Batch_size
#------------------------------------#
...
...
@@ -194,11 +209,19 @@ if __name__ == "__main__":
else
:
lr_scheduler
=
optim
.
lr_scheduler
.
StepLR
(
optimizer
,
step_size
=
1
,
gamma
=
0.9
)
gen
=
Generator
(
Batch_size
,
lines
[:
num_train
],
(
input_shape
[
0
],
input_shape
[
1
])).
generate
(
mosaic
=
mosaic
)
gen_val
=
Generator
(
Batch_size
,
lines
[
num_train
:],
(
input_shape
[
0
],
input_shape
[
1
])).
generate
(
mosaic
=
False
)
if
Use_Data_Loader
:
train_dataset
=
YoloDataset
(
lines
[:
num_train
],
(
input_shape
[
0
],
input_shape
[
1
]),
mosaic
=
mosaic
)
val_dataset
=
YoloDataset
(
lines
[
num_train
:],
(
input_shape
[
0
],
input_shape
[
1
]),
mosaic
=
False
)
gen
=
DataLoader
(
train_dataset
,
batch_size
=
Batch_size
,
num_workers
=
8
,
pin_memory
=
True
,
drop_last
=
True
,
collate_fn
=
yolo_dataset_collate
)
gen_val
=
DataLoader
(
val_dataset
,
batch_size
=
Batch_size
,
num_workers
=
8
,
pin_memory
=
True
,
drop_last
=
True
,
collate_fn
=
yolo_dataset_collate
)
else
:
gen
=
Generator
(
Batch_size
,
lines
[:
num_train
],
(
input_shape
[
0
],
input_shape
[
1
])).
generate
(
mosaic
=
mosaic
)
gen_val
=
Generator
(
Batch_size
,
lines
[
num_train
:],
(
input_shape
[
0
],
input_shape
[
1
])).
generate
(
mosaic
=
False
)
epoch_size
=
max
(
1
,
num_train
//
Batch_size
)
epoch_size_val
=
num_val
//
Batch_size
#------------------------------------#
...
...
@@ -209,4 +232,4 @@ if __name__ == "__main__":
for
epoch
in
range
(
Freeze_Epoch
,
Unfreeze_Epoch
):
fit_ont_epoch
(
net
,
yolo_losses
,
epoch
,
epoch_size
,
epoch_size_val
,
gen
,
gen_val
,
Unfreeze_Epoch
,
Cuda
)
lr_scheduler
.
step
()
lr_scheduler
.
step
()
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录