Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
X2Paddle
提交
fc5c67c4
X
X2Paddle
项目概览
PaddlePaddle
/
X2Paddle
大约 1 年 前同步成功
通知
328
Star
698
Fork
167
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
26
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
X2Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
26
Issue
26
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
fc5c67c4
编写于
7月 02, 2020
作者:
C
Channingss
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
support yolov3
上级
fc4d2464
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
20 addition
and
43 deletion
+20
-43
x2paddle/op_mapper/paddle_custom_layer/yolo_box.py
x2paddle/op_mapper/paddle_custom_layer/yolo_box.py
+16
-35
x2paddle/op_mapper/paddle_op_mapper.py
x2paddle/op_mapper/paddle_op_mapper.py
+4
-8
未找到文件。
x2paddle/op_mapper/paddle_custom_layer/yolo_box.py
浏览文件 @
fc5c67c4
...
@@ -2,8 +2,6 @@ import onnx
...
@@ -2,8 +2,6 @@ import onnx
import
numpy
as
np
import
numpy
as
np
from
onnx
import
onnx_pb
,
helper
from
onnx
import
onnx_pb
,
helper
MAX_FLOAT
=
np
.
asarray
([
255
,
255
,
127
,
127
],
dtype
=
np
.
uint8
).
view
(
np
.
float32
)[
0
]
def
get_old_name
(
arg
,
name_prefix
=
''
):
def
get_old_name
(
arg
,
name_prefix
=
''
):
prefix_index
=
arg
.
find
(
name_prefix
)
prefix_index
=
arg
.
find
(
name_prefix
)
...
@@ -749,53 +747,36 @@ def yolo_box(op, block):
...
@@ -749,53 +747,36 @@ def yolo_box(op, block):
outputs_pred_box_x2_clip
=
[
model_name
+
"@pred_box_x2_clip"
]
outputs_pred_box_x2_clip
=
[
model_name
+
"@pred_box_x2_clip"
]
outputs_pred_box_y2_clip
=
[
model_name
+
"@pred_box_y2_clip"
]
outputs_pred_box_y2_clip
=
[
model_name
+
"@pred_box_y2_clip"
]
min_const_name
=
model_name
+
"@pred_box_min_const"
max_const_name
=
model_name
+
"@pred_box_max_const"
min_const
=
onnx
.
helper
.
make_node
(
'Constant'
,
inputs
=
[],
outputs
=
[
min_const_name
],
value
=
onnx
.
helper
.
make_tensor
(
name
=
min_const_name
,
data_type
=
onnx
.
TensorProto
.
FLOAT
,
dims
=
(),
vals
=
[
0.0
]))
node_list
.
append
(
min_const
)
max_const
=
onnx
.
helper
.
make_node
(
'Constant'
,
inputs
=
[],
outputs
=
[
max_const_name
],
value
=
onnx
.
helper
.
make_tensor
(
name
=
max_const_name
,
data_type
=
onnx
.
TensorProto
.
FLOAT
,
dims
=
(),
vals
=
[
MAX_FLOAT
]))
node_list
.
append
(
max_const
)
node_pred_box_x1_clip
=
onnx
.
helper
.
make_node
(
node_pred_box_x1_clip
=
onnx
.
helper
.
make_node
(
'Clip'
,
'Clip'
,
inputs
=
outputs_pred_box_x1_decode
+
[
min_const_name
,
max_const_name
],
inputs
=
outputs_pred_box_x1_decode
,
outputs
=
outputs_pred_box_x1_clip
)
outputs
=
outputs_pred_box_x1_clip
,
min
=
0.0
,
max
=
float
(
np
.
inf
))
node_list
.
append
(
node_pred_box_x1_clip
)
node_list
.
append
(
node_pred_box_x1_clip
)
node_pred_box_y1_clip
=
onnx
.
helper
.
make_node
(
node_pred_box_y1_clip
=
onnx
.
helper
.
make_node
(
'Clip'
,
'Clip'
,
inputs
=
outputs_pred_box_y1_decode
+
[
min_const_name
,
max_const_name
],
inputs
=
outputs_pred_box_y1_decode
,
outputs
=
outputs_pred_box_y1_clip
)
outputs
=
outputs_pred_box_y1_clip
,
min
=
0.0
,
max
=
float
(
np
.
inf
))
node_list
.
append
(
node_pred_box_y1_clip
)
node_list
.
append
(
node_pred_box_y1_clip
)
node_pred_box_x2_clip
=
onnx
.
helper
.
make_node
(
node_pred_box_x2_clip
=
onnx
.
helper
.
make_node
(
'Clip'
,
'Clip'
,
inputs
=
outputs_pred_box_x2_sub_w
+
[
min_const_name
,
max_const_name
],
inputs
=
outputs_pred_box_x2_sub_w
,
outputs
=
outputs_pred_box_x2_clip
)
outputs
=
outputs_pred_box_x2_clip
,
min
=
0.0
,
max
=
float
(
np
.
inf
))
node_list
.
append
(
node_pred_box_x2_clip
)
node_list
.
append
(
node_pred_box_x2_clip
)
node_pred_box_y2_clip
=
onnx
.
helper
.
make_node
(
node_pred_box_y2_clip
=
onnx
.
helper
.
make_node
(
'Clip'
,
'Clip'
,
inputs
=
outputs_pred_box_y2_sub_h
+
[
min_const_name
,
max_const_name
],
inputs
=
outputs_pred_box_y2_sub_h
,
outputs
=
outputs_pred_box_y2_clip
)
outputs
=
outputs_pred_box_y2_clip
,
min
=
0.0
,
max
=
float
(
np
.
inf
))
node_list
.
append
(
node_pred_box_y2_clip
)
node_list
.
append
(
node_pred_box_y2_clip
)
outputs_pred_box_x2_res
=
[
model_name
+
"@box_x2_res"
]
outputs_pred_box_x2_res
=
[
model_name
+
"@box_x2_res"
]
...
...
x2paddle/op_mapper/paddle_op_mapper.py
浏览文件 @
fc5c67c4
...
@@ -675,17 +675,15 @@ class PaddleOpMapper(object):
...
@@ -675,17 +675,15 @@ class PaddleOpMapper(object):
if
'OutSize'
in
input_names
and
len
(
op
.
input
(
'OutSize'
))
>
0
:
if
'OutSize'
in
input_names
and
len
(
op
.
input
(
'OutSize'
))
>
0
:
node
=
helper
.
make_node
(
node
=
helper
.
make_node
(
'Resize'
,
'Resize'
,
inputs
=
[
op
.
input
(
'X'
)[
0
],
''
,
op
.
input
(
'OutSize'
)[
0
]],
inputs
=
[
op
.
input
(
'X'
)[
0
],
op
.
input
(
'OutSize'
)[
0
]],
outputs
=
op
.
output
(
'Out'
),
outputs
=
op
.
output
(
'Out'
),
mode
=
'nearest'
,
mode
=
'nearest'
)
coordinate_transformation_mode
=
coordinate_transformation_mode
)
elif
'Scale'
in
input_names
and
len
(
op
.
input
(
'Scale'
))
>
0
:
elif
'Scale'
in
input_names
and
len
(
op
.
input
(
'Scale'
))
>
0
:
node
=
helper
.
make_node
(
node
=
helper
.
make_node
(
'Resize'
,
'Resize'
,
inputs
=
[
op
.
input
(
'X'
)[
0
],
op
.
input
(
'Scale'
)[
0
]],
inputs
=
[
op
.
input
(
'X'
)[
0
],
op
.
input
(
'Scale'
)[
0
]],
outputs
=
op
.
output
(
'Out'
),
outputs
=
op
.
output
(
'Out'
),
mode
=
'nearest'
,
mode
=
'nearest'
)
coordinate_transformation_mode
=
coordinate_transformation_mode
)
else
:
else
:
out_shape
=
[
op
.
attr
(
'out_h'
),
op
.
attr
(
'out_w'
)]
out_shape
=
[
op
.
attr
(
'out_h'
),
op
.
attr
(
'out_w'
)]
scale
=
op
.
attr
(
'scale'
)
scale
=
op
.
attr
(
'scale'
)
...
@@ -698,9 +696,7 @@ class PaddleOpMapper(object):
...
@@ -698,9 +696,7 @@ class PaddleOpMapper(object):
'Resize'
,
'Resize'
,
inputs
=
[
op
.
input
(
'X'
)[
0
],
scale_name
],
inputs
=
[
op
.
input
(
'X'
)[
0
],
scale_name
],
outputs
=
op
.
output
(
'Out'
),
outputs
=
op
.
output
(
'Out'
),
mode
=
'nearest'
,
mode
=
'nearest'
)
coordinate_transformation_mode
=
coordinate_transformation_mode
)
return
[
scale_node
,
node
]
return
[
scale_node
,
node
]
else
:
else
:
raise
Exception
(
"Unexpected situation happend"
)
raise
Exception
(
"Unexpected situation happend"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录