Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Oneflow-Inc
of-maskrcnn-benchmark
提交
8046b43e
O
of-maskrcnn-benchmark
项目概览
Oneflow-Inc
/
of-maskrcnn-benchmark
10 个月 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
of-maskrcnn-benchmark
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8046b43e
编写于
3月 14, 2019
作者:
L
leaves-zwx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
mask test dump
上级
da6c4534
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
25 addition
and
0 deletion
+25
-0
maskrcnn_benchmark/modeling/roi_heads/mask_head/loss.py
maskrcnn_benchmark/modeling/roi_heads/mask_head/loss.py
+5
-0
maskrcnn_benchmark/modeling/roi_heads/mask_head/mask_head.py
maskrcnn_benchmark/modeling/roi_heads/mask_head/mask_head.py
+20
-0
未找到文件。
maskrcnn_benchmark/modeling/roi_heads/mask_head/loss.py
浏览文件 @
8046b43e
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
import
numpy
import
torch
from
torch.nn
import
functional
as
F
...
...
@@ -113,6 +114,10 @@ class MaskRCNNLossComputation(object):
"""
labels
,
mask_targets
=
self
.
prepare_targets
(
proposals
,
targets
)
for
i
,
mask_targets_per_im
in
enumerate
(
mask_targets
):
mask_targets_save_path
=
'./new_dump/mask/{}_mask_targets'
.
format
(
i
)
+
'.'
+
str
(
mask_targets_per_im
.
size
())
numpy
.
save
(
mask_targets_save_path
,
mask_targets_per_im
.
cpu
().
detach
().
numpy
())
labels
=
cat
(
labels
,
dim
=
0
)
mask_targets
=
cat
(
mask_targets
,
dim
=
0
)
...
...
maskrcnn_benchmark/modeling/roi_heads/mask_head/mask_head.py
浏览文件 @
8046b43e
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
import
os
import
numpy
import
torch
from
torch
import
nn
...
...
@@ -57,11 +59,23 @@ class ROIMaskHead(torch.nn.Module):
losses (dict[Tensor]): During training, returns the losses for the
head. During testing, returns an empty dict.
"""
mask_save_dir
=
'./new_dump/mask'
if
not
os
.
path
.
exists
(
mask_save_dir
):
os
.
makedirs
(
mask_save_dir
)
if
self
.
training
:
# during training, only focus on positive boxes
all_proposals
=
proposals
proposals
,
positive_inds
=
keep_only_positive_boxes
(
proposals
)
for
i
,
proposals_per_im
in
enumerate
(
proposals
):
boxes
=
proposals_per_im
.
bbox
labels
=
proposals_per_im
.
get_field
(
'labels'
)
boxes_save_path
=
mask_save_dir
+
'/{}_proposals_boxes'
.
format
(
i
)
+
'.'
+
str
(
boxes
.
size
())
numpy
.
save
(
boxes_save_path
,
boxes
.
cpu
().
detach
().
numpy
())
labels_save_path
=
mask_save_dir
+
'/{}_proposals_labels'
.
format
(
i
)
+
'.'
+
str
(
labels
.
size
())
numpy
.
save
(
labels_save_path
,
labels
.
cpu
().
detach
().
numpy
())
if
self
.
training
and
self
.
cfg
.
MODEL
.
ROI_MASK_HEAD
.
SHARE_BOX_FEATURE_EXTRACTOR
:
x
=
features
x
=
x
[
torch
.
cat
(
positive_inds
,
dim
=
0
)]
...
...
@@ -69,12 +83,18 @@ class ROIMaskHead(torch.nn.Module):
x
=
self
.
feature_extractor
(
features
,
proposals
)
mask_logits
=
self
.
predictor
(
x
)
mask_logits_save_path
=
mask_save_dir
+
'/mask_logits'
+
'.'
+
str
(
mask_logits
.
size
())
numpy
.
save
(
mask_logits_save_path
,
mask_logits
.
cpu
().
detach
().
numpy
())
if
not
self
.
training
:
result
=
self
.
post_processor
(
mask_logits
,
proposals
)
return
x
,
result
,
{}
loss_mask
=
self
.
loss_evaluator
(
proposals
,
mask_logits
,
targets
)
loss_save_path
=
mask_save_dir
+
'/loss'
+
'.'
+
str
(
loss_mask
.
size
())
numpy
.
save
(
loss_save_path
,
loss_mask
.
cpu
().
detach
().
numpy
())
return
x
,
all_proposals
,
dict
(
loss_mask
=
loss_mask
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录