Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
一汁程序喵
ssd-pytorch
提交
4bfffb7e
S
ssd-pytorch
项目概览
一汁程序喵
/
ssd-pytorch
与 Fork 源项目一致
从无法访问的项目Fork
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
ssd-pytorch
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
4bfffb7e
编写于
5月 09, 2021
作者:
B
Bubbliiiing
提交者:
GitHub
5月 09, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add files via upload
上级
38d8e41a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
50 addition
and
0 deletion
+50
-0
nets/ssd_training.py
nets/ssd_training.py
+50
-0
未找到文件。
nets/ssd_training.py
浏览文件 @
4bfffb7e
import
os
from
random
import
shuffle
import
cv2
import
numpy
as
np
import
scipy.signal
import
torch
import
torch.nn
as
nn
import
torch.nn.functional
as
F
from
matplotlib
import
pyplot
as
plt
from
matplotlib.colors
import
hsv_to_rgb
,
rgb_to_hsv
from
PIL
import
Image
from
torch.autograd
import
Variable
...
...
@@ -280,3 +283,50 @@ class Generator(object):
inputs
=
[]
targets
=
[]
yield
tmp_inp
,
tmp_targets
class
LossHistory
():
def
__init__
(
self
,
log_dir
):
import
datetime
curr_time
=
datetime
.
datetime
.
now
()
time_str
=
datetime
.
datetime
.
strftime
(
curr_time
,
'%Y_%m_%d_%H_%M_%S'
)
self
.
log_dir
=
log_dir
self
.
time_str
=
time_str
self
.
save_path
=
os
.
path
.
join
(
self
.
log_dir
,
"loss_"
+
str
(
self
.
time_str
))
self
.
losses
=
[]
self
.
val_loss
=
[]
os
.
makedirs
(
self
.
save_path
)
def
append_loss
(
self
,
loss
,
val_loss
):
self
.
losses
.
append
(
loss
)
self
.
val_loss
.
append
(
val_loss
)
with
open
(
os
.
path
.
join
(
self
.
save_path
,
"epoch_loss_"
+
str
(
self
.
time_str
)
+
".txt"
),
'a'
)
as
f
:
f
.
write
(
str
(
loss
))
f
.
write
(
"
\n
"
)
with
open
(
os
.
path
.
join
(
self
.
save_path
,
"epoch_val_loss_"
+
str
(
self
.
time_str
)
+
".txt"
),
'a'
)
as
f
:
f
.
write
(
str
(
val_loss
))
f
.
write
(
"
\n
"
)
self
.
loss_plot
()
def
loss_plot
(
self
):
iters
=
range
(
len
(
self
.
losses
))
plt
.
figure
()
plt
.
plot
(
iters
,
self
.
losses
,
'red'
,
linewidth
=
2
,
label
=
'train loss'
)
plt
.
plot
(
iters
,
self
.
val_loss
,
'coral'
,
linewidth
=
2
,
label
=
'val loss'
)
try
:
num
=
len
(
self
.
losses
)
/
3
num
=
num
if
num
%
2
else
num
+
1
num
=
max
(
num
,
5
)
plt
.
plot
(
iters
,
scipy
.
signal
.
savgol_filter
(
self
.
losses
,
num
,
3
),
'green'
,
linestyle
=
'--'
,
linewidth
=
2
,
label
=
'smooth train loss'
)
plt
.
plot
(
iters
,
scipy
.
signal
.
savgol_filter
(
self
.
val_loss
,
num
,
3
),
'#8B4513'
,
linestyle
=
'--'
,
linewidth
=
2
,
label
=
'smooth val loss'
)
except
:
pass
plt
.
grid
(
True
)
plt
.
xlabel
(
'Epoch'
)
plt
.
ylabel
(
'Loss'
)
plt
.
legend
(
loc
=
"upper right"
)
plt
.
savefig
(
os
.
path
.
join
(
self
.
save_path
,
"epoch_loss_"
+
str
(
self
.
time_str
)
+
".png"
))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录