Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
192262fe
M
mindspore
项目概览
magicwindyyd
/
mindspore
与 Fork 源项目一致
Fork自
MindSpore / mindspore
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindspore
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
192262fe
编写于
8月 20, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
8月 20, 2020
浏览文件
操作
浏览文件
下载
差异文件
!4640 fix fullyconnected tflite parser bug
Merge pull request !4640 from lyvette/parser
上级
24700afa
b2e438df
变更
54
隐藏空白更改
内联
并排
Showing
54 changed file
with
109 addition
and
92 deletion
+109
-92
mindspore/lite/test/ut/tools/converter/parser/tflite/tflite_l2norm_parser_test.cc
...ools/converter/parser/tflite/tflite_l2norm_parser_test.cc
+1
-0
mindspore/lite/tools/converter/parser/tflite/tflite_activation_parser.cc
...tools/converter/parser/tflite/tflite_activation_parser.cc
+3
-3
mindspore/lite/tools/converter/parser/tflite/tflite_addn_parser.cc
.../lite/tools/converter/parser/tflite/tflite_addn_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_argmax_parser.cc
...ite/tools/converter/parser/tflite/tflite_argmax_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_argmin_parser.cc
...ite/tools/converter/parser/tflite/tflite_argmin_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_arithmetic_parser.cc
...tools/converter/parser/tflite/tflite_arithmetic_parser.cc
+28
-28
mindspore/lite/tools/converter/parser/tflite/tflite_batch_to_space_parser.cc
...s/converter/parser/tflite/tflite_batch_to_space_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_broadcast_to_parser.cc
...ols/converter/parser/tflite/tflite_broadcast_to_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_cast_parser.cc
.../lite/tools/converter/parser/tflite/tflite_cast_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_concat_parser.cc
...ite/tools/converter/parser/tflite/tflite_concat_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_conv_parser.cc
.../lite/tools/converter/parser/tflite/tflite_conv_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_deconv_parser.cc
...ite/tools/converter/parser/tflite/tflite_deconv_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_depth_to_space_parser.cc
...s/converter/parser/tflite/tflite_depth_to_space_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_depthwise_conv_parser.cc
...s/converter/parser/tflite/tflite_depthwise_conv_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_dequantize_parser.cc
...tools/converter/parser/tflite/tflite_dequantize_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_expand_dims_parser.cc
...ools/converter/parser/tflite/tflite_expand_dims_parser.cc
+3
-2
mindspore/lite/tools/converter/parser/tflite/tflite_fill_parser.cc
.../lite/tools/converter/parser/tflite/tflite_fill_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_fullyconnected_parser.cc
...s/converter/parser/tflite/tflite_fullyconnected_parser.cc
+8
-4
mindspore/lite/tools/converter/parser/tflite/tflite_gather_nd_parser.cc
.../tools/converter/parser/tflite/tflite_gather_nd_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_gather_parser.cc
...ite/tools/converter/parser/tflite/tflite_gather_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_l2norm_parser.cc
...ite/tools/converter/parser/tflite/tflite_l2norm_parser.cc
+9
-1
mindspore/lite/tools/converter/parser/tflite/tflite_logical_parser.cc
...te/tools/converter/parser/tflite/tflite_logical_parser.cc
+3
-3
mindspore/lite/tools/converter/parser/tflite/tflite_lrn_parser.cc
...e/lite/tools/converter/parser/tflite/tflite_lrn_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_model_parser.cc
...lite/tools/converter/parser/tflite/tflite_model_parser.cc
+6
-3
mindspore/lite/tools/converter/parser/tflite/tflite_model_parser.h
.../lite/tools/converter/parser/tflite/tflite_model_parser.h
+3
-3
mindspore/lite/tools/converter/parser/tflite/tflite_one_hot_parser.cc
...te/tools/converter/parser/tflite/tflite_one_hot_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_pad_parser.cc
...e/lite/tools/converter/parser/tflite/tflite_pad_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_pooling_parser.cc
...te/tools/converter/parser/tflite/tflite_pooling_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_range_parser.cc
...lite/tools/converter/parser/tflite/tflite_range_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_rank_parser.cc
.../lite/tools/converter/parser/tflite/tflite_rank_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_reduce_parser.cc
...ite/tools/converter/parser/tflite/tflite_reduce_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_reshape_parser.cc
...te/tools/converter/parser/tflite/tflite_reshape_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_resize_parser.cc
...ite/tools/converter/parser/tflite/tflite_resize_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_reverse_parser.cc
...te/tools/converter/parser/tflite/tflite_reverse_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_reverse_sequence_parser.cc
...converter/parser/tflite/tflite_reverse_sequence_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_scatter_nd_parser.cc
...tools/converter/parser/tflite/tflite_scatter_nd_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_shape_parser.cc
...lite/tools/converter/parser/tflite/tflite_shape_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_slice_parser.cc
...lite/tools/converter/parser/tflite/tflite_slice_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_softmax_parser.cc
...te/tools/converter/parser/tflite/tflite_softmax_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_space_to_batch_nd_parser.cc
...onverter/parser/tflite/tflite_space_to_batch_nd_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_space_to_depth_parser.cc
...s/converter/parser/tflite/tflite_space_to_depth_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_sparse_to_dense_parser.cc
.../converter/parser/tflite/tflite_sparse_to_dense_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_split_parser.cc
...lite/tools/converter/parser/tflite/tflite_split_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_split_v_parser.cc
...te/tools/converter/parser/tflite/tflite_split_v_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_squeeze_parser.cc
...te/tools/converter/parser/tflite/tflite_squeeze_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_stack_parser.cc
...lite/tools/converter/parser/tflite/tflite_stack_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_strided_slice_parser.cc
...ls/converter/parser/tflite/tflite_strided_slice_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_tile_parser.cc
.../lite/tools/converter/parser/tflite/tflite_tile_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_topk_v2_parser.cc
...te/tools/converter/parser/tflite/tflite_topk_v2_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_transpose_parser.cc
.../tools/converter/parser/tflite/tflite_transpose_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_unique_parser.cc
...ite/tools/converter/parser/tflite/tflite_unique_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_unstack_parser.cc
...te/tools/converter/parser/tflite/tflite_unstack_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_where_parser.cc
...lite/tools/converter/parser/tflite/tflite_where_parser.cc
+1
-1
mindspore/lite/tools/converter/parser/tflite/tflite_zeros_like_parser.cc
...tools/converter/parser/tflite/tflite_zeros_like_parser.cc
+1
-1
未找到文件。
mindspore/lite/test/ut/tools/converter/parser/tflite/tflite_l2norm_parser_test.cc
浏览文件 @
192262fe
...
...
@@ -27,6 +27,7 @@ class TestTfliteParserL2Norm : public TestTfliteParser {
TEST_F
(
TestTfliteParserL2Norm
,
OpType
)
{
ASSERT_NE
(
meta_graph
,
nullptr
);
ASSERT_GT
(
meta_graph
->
nodes
.
size
(),
0
);
ASSERT_NE
(
meta_graph
->
nodes
.
front
()
->
primitive
.
get
(),
nullptr
);
ASSERT_EQ
(
meta_graph
->
nodes
.
front
()
->
primitive
->
value
.
type
,
schema
::
PrimitiveType_L2Norm
)
<<
"wrong Op Type"
;
}
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_activation_parser.cc
浏览文件 @
192262fe
...
...
@@ -38,7 +38,7 @@ STATUS TfliteActivationParser::Parse(const std::unique_ptr<tflite::OperatorT> &t
MS_LOG
(
ERROR
)
<<
"op->primitive is null"
;
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ActivationT
>
attr
(
new
schema
::
ActivationT
()
);
std
::
unique_ptr
<
schema
::
ActivationT
>
attr
=
std
::
make_unique
<
schema
::
ActivationT
>
(
);
std
::
vector
<
std
::
string
>
node_name_str
;
Split
(
op
->
name
,
&
node_name_str
,
"-"
);
...
...
@@ -89,7 +89,7 @@ STATUS TflitePreluParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite
MS_LOG
(
ERROR
)
<<
"op->primitive is null"
;
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
PreluT
>
attr
(
new
schema
::
PreluT
()
);
std
::
unique_ptr
<
schema
::
PreluT
>
attr
=
std
::
make_unique
<
schema
::
PreluT
>
(
);
if
(
GetTfliteData
(
tflite_op
->
inputs
[
1
],
tflite_tensors
,
tflite_model_buffer
,
attr
->
slope
))
{
MS_LOG
(
ERROR
)
<<
"get pRelu -> slope failed"
;
...
...
@@ -124,7 +124,7 @@ STATUS TfliteLeakyReluParser::Parse(const std::unique_ptr<tflite::OperatorT> &tf
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
LeakyReLUT
>
attr
(
new
schema
::
LeakyReLUT
()
);
std
::
unique_ptr
<
schema
::
LeakyReLUT
>
attr
=
std
::
make_unique
<
schema
::
LeakyReLUT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsLeakyReluOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_addn_parser.cc
浏览文件 @
192262fe
...
...
@@ -42,7 +42,7 @@ STATUS TfliteAddNParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite_
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
AddNT
>
attr
(
new
schema
::
AddNT
()
);
std
::
unique_ptr
<
schema
::
AddNT
>
attr
=
std
::
make_unique
<
schema
::
AddNT
>
(
);
attr
->
N
=
tflite_tensors
.
size
()
-
1
;
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_AddN
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_argmax_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteArgmaxParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ArgMaxT
>
attr
(
new
schema
::
ArgMaxT
()
);
std
::
unique_ptr
<
schema
::
ArgMaxT
>
attr
=
std
::
make_unique
<
schema
::
ArgMaxT
>
(
);
attr
->
outMaxValue
=
false
;
attr
->
topK
=
1
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_argmin_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteArgminParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ArgMinT
>
attr
(
new
schema
::
ArgMinT
()
);
std
::
unique_ptr
<
schema
::
ArgMinT
>
attr
=
std
::
make_unique
<
schema
::
ArgMinT
>
(
);
attr
->
outMaxValue
=
false
;
attr
->
topK
=
1
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_arithmetic_parser.cc
浏览文件 @
192262fe
...
...
@@ -44,7 +44,7 @@ STATUS TfliteDoubleInputOpParser::Parse(const std::unique_ptr<tflite::OperatorT>
const
char
*
node_name
=
node_name_str
.
data
()
->
c_str
();
if
(
std
::
strcmp
(
node_name
,
"Add"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteAddParser"
;
std
::
unique_ptr
<
schema
::
AddT
>
attr
(
new
schema
::
AddT
()
);
std
::
unique_ptr
<
schema
::
AddT
>
attr
=
std
::
make_unique
<
schema
::
AddT
>
(
);
const
auto
&
tfliteAttr
=
tflite_op
->
builtin_options
.
AsAddOptions
();
if
(
nullptr
==
tfliteAttr
)
{
MS_LOG
(
ERROR
)
<<
"get op: "
<<
op
->
name
.
c_str
()
<<
" attr failed"
;
...
...
@@ -55,7 +55,7 @@ STATUS TfliteDoubleInputOpParser::Parse(const std::unique_ptr<tflite::OperatorT>
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Sub"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteSubParser"
;
std
::
unique_ptr
<
schema
::
SubT
>
attr
(
new
schema
::
SubT
()
);
std
::
unique_ptr
<
schema
::
SubT
>
attr
=
std
::
make_unique
<
schema
::
SubT
>
(
);
const
auto
&
tfliteAttr
=
tflite_op
->
builtin_options
.
AsSubOptions
();
if
(
nullptr
==
tfliteAttr
)
{
MS_LOG
(
ERROR
)
<<
"get op: "
<<
op
->
name
.
c_str
()
<<
" attr failed"
;
...
...
@@ -66,7 +66,7 @@ STATUS TfliteDoubleInputOpParser::Parse(const std::unique_ptr<tflite::OperatorT>
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Mul"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteMulParser"
;
std
::
unique_ptr
<
schema
::
MulT
>
attr
(
new
schema
::
MulT
()
);
std
::
unique_ptr
<
schema
::
MulT
>
attr
=
std
::
make_unique
<
schema
::
MulT
>
(
);
const
auto
&
tfliteAttr
=
tflite_op
->
builtin_options
.
AsMulOptions
();
if
(
nullptr
==
tfliteAttr
)
{
MS_LOG
(
ERROR
)
<<
"get op: "
<<
op
->
name
.
c_str
()
<<
" attr failed"
;
...
...
@@ -77,7 +77,7 @@ STATUS TfliteDoubleInputOpParser::Parse(const std::unique_ptr<tflite::OperatorT>
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Div"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteDivParser"
;
std
::
unique_ptr
<
schema
::
DivT
>
attr
(
new
schema
::
DivT
()
);
std
::
unique_ptr
<
schema
::
DivT
>
attr
=
std
::
make_unique
<
schema
::
DivT
>
(
);
const
auto
&
tfliteAttr
=
tflite_op
->
builtin_options
.
AsDivOptions
();
if
(
nullptr
==
tfliteAttr
)
{
MS_LOG
(
ERROR
)
<<
"get op: "
<<
op
->
name
.
c_str
()
<<
" attr failed"
;
...
...
@@ -88,27 +88,27 @@ STATUS TfliteDoubleInputOpParser::Parse(const std::unique_ptr<tflite::OperatorT>
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"FloorDiv"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteFloorDivParser"
;
std
::
unique_ptr
<
schema
::
FloorDivT
>
attr
(
new
schema
::
FloorDivT
()
);
std
::
unique_ptr
<
schema
::
FloorDivT
>
attr
=
std
::
make_unique
<
schema
::
FloorDivT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_FloorDiv
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"FloorMod"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteFloorModParser"
;
std
::
unique_ptr
<
schema
::
FloorModT
>
attr
(
new
schema
::
FloorModT
()
);
std
::
unique_ptr
<
schema
::
FloorModT
>
attr
=
std
::
make_unique
<
schema
::
FloorModT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_FloorMod
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"RealDiv"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteRealDivParser"
;
std
::
unique_ptr
<
schema
::
RealDivT
>
attr
(
new
schema
::
RealDivT
()
);
std
::
unique_ptr
<
schema
::
RealDivT
>
attr
=
std
::
make_unique
<
schema
::
RealDivT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Div
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"SquaredDifference"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteSquaredDifferenceParser"
;
std
::
unique_ptr
<
schema
::
SquaredDifferenceT
>
attr
(
new
schema
::
SquaredDifferenceT
()
);
std
::
unique_ptr
<
schema
::
SquaredDifferenceT
>
attr
=
std
::
make_unique
<
schema
::
SquaredDifferenceT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_SquaredDifference
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Pow"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TflitePowParser"
;
std
::
unique_ptr
<
schema
::
PowerT
>
attr
(
new
schema
::
PowerT
()
);
std
::
unique_ptr
<
schema
::
PowerT
>
attr
=
std
::
make_unique
<
schema
::
PowerT
>
(
);
attr
->
power
=
0.0
f
;
attr
->
scale
=
1.0
f
;
attr
->
shift
=
0.0
f
;
...
...
@@ -116,12 +116,12 @@ STATUS TfliteDoubleInputOpParser::Parse(const std::unique_ptr<tflite::OperatorT>
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Maximum"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteMaximumParser"
;
std
::
unique_ptr
<
schema
::
MaximumT
>
attr
(
new
schema
::
MaximumT
()
);
std
::
unique_ptr
<
schema
::
MaximumT
>
attr
=
std
::
make_unique
<
schema
::
MaximumT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Maximum
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Minimum"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteMinimumParser"
;
std
::
unique_ptr
<
schema
::
MinimumT
>
attr
(
new
schema
::
MinimumT
()
);
std
::
unique_ptr
<
schema
::
MinimumT
>
attr
=
std
::
make_unique
<
schema
::
MinimumT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Minimum
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
...
...
@@ -158,57 +158,57 @@ STATUS TfliteSingleInputOpParser::Parse(const std::unique_ptr<tflite::OperatorT>
const
char
*
node_name
=
node_name_str
.
data
()
->
c_str
();
if
(
std
::
strcmp
(
node_name
,
"Abs"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteAbsParser"
;
std
::
unique_ptr
<
schema
::
AbsT
>
attr
(
new
schema
::
AbsT
()
);
std
::
unique_ptr
<
schema
::
AbsT
>
attr
=
std
::
make_unique
<
schema
::
AbsT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Abs
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Exp"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteExpParser"
;
std
::
unique_ptr
<
schema
::
ExpT
>
attr
(
new
schema
::
ExpT
()
);
std
::
unique_ptr
<
schema
::
ExpT
>
attr
=
std
::
make_unique
<
schema
::
ExpT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Exp
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Sqrt"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteSqrtParser"
;
std
::
unique_ptr
<
schema
::
SqrtT
>
attr
(
new
schema
::
SqrtT
()
);
std
::
unique_ptr
<
schema
::
SqrtT
>
attr
=
std
::
make_unique
<
schema
::
SqrtT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Sqrt
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Rsqrt"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteRsqrtParser"
;
std
::
unique_ptr
<
schema
::
RsqrtT
>
attr
(
new
schema
::
RsqrtT
()
);
std
::
unique_ptr
<
schema
::
RsqrtT
>
attr
=
std
::
make_unique
<
schema
::
RsqrtT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Rsqrt
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Square"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteSquareParser"
;
std
::
unique_ptr
<
schema
::
SquareT
>
attr
(
new
schema
::
SquareT
()
);
std
::
unique_ptr
<
schema
::
SquareT
>
attr
=
std
::
make_unique
<
schema
::
SquareT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Square
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Sin"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteSinParser"
;
std
::
unique_ptr
<
schema
::
SinT
>
attr
(
new
schema
::
SinT
()
);
std
::
unique_ptr
<
schema
::
SinT
>
attr
=
std
::
make_unique
<
schema
::
SinT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Sin
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Cos"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteCosParser"
;
std
::
unique_ptr
<
schema
::
CosT
>
attr
(
new
schema
::
CosT
()
);
std
::
unique_ptr
<
schema
::
CosT
>
attr
=
std
::
make_unique
<
schema
::
CosT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Cos
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Log"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteLogParser"
;
std
::
unique_ptr
<
schema
::
LogT
>
attr
(
new
schema
::
LogT
()
);
std
::
unique_ptr
<
schema
::
LogT
>
attr
=
std
::
make_unique
<
schema
::
LogT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Log
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Round"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteRoundParser"
;
std
::
unique_ptr
<
schema
::
RoundT
>
attr
(
new
schema
::
RoundT
()
);
std
::
unique_ptr
<
schema
::
RoundT
>
attr
=
std
::
make_unique
<
schema
::
RoundT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Round
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Ceil"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteCeilParser"
;
std
::
unique_ptr
<
schema
::
CeilT
>
attr
(
new
schema
::
CeilT
()
);
std
::
unique_ptr
<
schema
::
CeilT
>
attr
=
std
::
make_unique
<
schema
::
CeilT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Ceil
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"flOOR"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteFloorParser"
;
std
::
unique_ptr
<
schema
::
FloorT
>
attr
(
new
schema
::
FloorT
()
);
std
::
unique_ptr
<
schema
::
FloorT
>
attr
=
std
::
make_unique
<
schema
::
FloorT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Floor
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
...
...
@@ -242,32 +242,32 @@ STATUS TfliteCompareOpParser::Parse(const std::unique_ptr<tflite::OperatorT> &tf
const
char
*
node_name
=
node_name_str
.
data
()
->
c_str
();
if
(
std
::
strcmp
(
node_name
,
"Equal"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteEqualParser"
;
std
::
unique_ptr
<
schema
::
EqualT
>
attr
(
new
schema
::
EqualT
()
);
std
::
unique_ptr
<
schema
::
EqualT
>
attr
=
std
::
make_unique
<
schema
::
EqualT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Equal
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"NotEqual"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteNotEqualParser"
;
std
::
unique_ptr
<
schema
::
NotEqualT
>
attr
(
new
schema
::
NotEqualT
()
);
std
::
unique_ptr
<
schema
::
NotEqualT
>
attr
=
std
::
make_unique
<
schema
::
NotEqualT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_NotEqual
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Greater"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteGreaterParser"
;
std
::
unique_ptr
<
schema
::
GreaterT
>
attr
(
new
schema
::
GreaterT
()
);
std
::
unique_ptr
<
schema
::
GreaterT
>
attr
=
std
::
make_unique
<
schema
::
GreaterT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Greater
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"GreaterEqual"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteGreaterEqualParser"
;
std
::
unique_ptr
<
schema
::
GreaterEqualT
>
attr
(
new
schema
::
GreaterEqualT
()
);
std
::
unique_ptr
<
schema
::
GreaterEqualT
>
attr
=
std
::
make_unique
<
schema
::
GreaterEqualT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_GreaterEqual
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"Less"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteLessParser"
;
std
::
unique_ptr
<
schema
::
LessT
>
attr
(
new
schema
::
LessT
()
);
std
::
unique_ptr
<
schema
::
LessT
>
attr
=
std
::
make_unique
<
schema
::
LessT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Less
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"LessEqual"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteLessEqualParser"
;
std
::
unique_ptr
<
schema
::
LessEqualT
>
attr
(
new
schema
::
LessEqualT
()
);
std
::
unique_ptr
<
schema
::
LessEqualT
>
attr
=
std
::
make_unique
<
schema
::
LessEqualT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_LessEqual
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_batch_to_space_parser.cc
浏览文件 @
192262fe
...
...
@@ -49,7 +49,7 @@ STATUS TfliteBatchToSpaceParser::Parse(const std::unique_ptr<tflite::OperatorT>
MS_LOG
(
DEBUG
)
<<
"parse TfliteBatchToSpaceNDParser"
;
}
std
::
unique_ptr
<
schema
::
BatchToSpaceT
>
attr
(
new
schema
::
BatchToSpaceT
()
);
std
::
unique_ptr
<
schema
::
BatchToSpaceT
>
attr
=
std
::
make_unique
<
schema
::
BatchToSpaceT
>
(
);
if
(
GetTfliteData
(
tflite_op
->
inputs
[
1
],
tflite_tensors
,
tflite_model_buffer
,
attr
->
blockShape
))
{
MS_LOG
(
ERROR
)
<<
"get batchToSpace -> blockShape failed"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_broadcast_to_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteBroadcastToParser::Parse(const std::unique_ptr<tflite::OperatorT> &
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
BroadcastToT
>
attr
(
new
schema
::
BroadcastToT
()
);
std
::
unique_ptr
<
schema
::
BroadcastToT
>
attr
=
std
::
make_unique
<
schema
::
BroadcastToT
>
(
);
if
(
GetTfliteData
(
tflite_op
->
inputs
[
1
],
tflite_tensors
,
tflite_model_buffer
,
attr
->
dst_shape
))
{
MS_LOG
(
ERROR
)
<<
"get broadCastTo -> dst_shape failed"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_cast_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteCastParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite_
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
CastT
>
attr
(
new
schema
::
CastT
()
);
std
::
unique_ptr
<
schema
::
CastT
>
attr
=
std
::
make_unique
<
schema
::
CastT
>
(
);
const
auto
&
in_tensor
=
tflite_tensors
[
tflite_op
->
inputs
[
0
]];
if
(
in_tensor
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_concat_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteConcatParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ConcatT
>
attr
(
new
schema
::
ConcatT
()
);
std
::
unique_ptr
<
schema
::
ConcatT
>
attr
=
std
::
make_unique
<
schema
::
ConcatT
>
(
);
const
auto
&
tfliteAttr
=
tflite_op
->
builtin_options
.
AsConcatenationOptions
();
if
(
tfliteAttr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_conv_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteConvParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite_
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
Conv2DT
>
attr
(
new
schema
::
Conv2DT
()
);
std
::
unique_ptr
<
schema
::
Conv2DT
>
attr
=
std
::
make_unique
<
schema
::
Conv2DT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsConv2DOptions
();
if
(
tflite_attr
==
nullptr
)
{
MS_LOG
(
ERROR
)
<<
"get op: "
<<
op
->
name
.
c_str
()
<<
" attr failed"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_deconv_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteDeConvParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
DeConv2DT
>
attr
(
new
schema
::
DeConv2DT
()
);
std
::
unique_ptr
<
schema
::
DeConv2DT
>
attr
=
std
::
make_unique
<
schema
::
DeConv2DT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsTransposeConvOptions
();
if
(
tflite_attr
==
nullptr
)
{
MS_LOG
(
ERROR
)
<<
"get op: "
<<
op
->
name
.
c_str
()
<<
" attr failed"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_depth_to_space_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteDepthToSpaceParser::Parse(const std::unique_ptr<tflite::OperatorT>
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
DepthToSpaceT
>
attr
(
new
schema
::
DepthToSpaceT
()
);
std
::
unique_ptr
<
schema
::
DepthToSpaceT
>
attr
=
std
::
make_unique
<
schema
::
DepthToSpaceT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsDepthToSpaceOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_depthwise_conv_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteDepthwiseConv2DParser::Parse(const std::unique_ptr<tflite::Operator
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
DepthwiseConv2DT
>
attr
(
new
schema
::
DepthwiseConv2DT
()
);
std
::
unique_ptr
<
schema
::
DepthwiseConv2DT
>
attr
=
std
::
make_unique
<
schema
::
DepthwiseConv2DT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsDepthwiseConv2DOptions
();
if
(
tflite_attr
==
nullptr
)
{
MS_LOG
(
ERROR
)
<<
"get op: "
<<
op
->
name
.
c_str
()
<<
" attr failed"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_dequantize_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteDequantizeParser::Parse(const std::unique_ptr<tflite::OperatorT> &t
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
CastT
>
attr
(
new
schema
::
CastT
);
std
::
unique_ptr
<
schema
::
CastT
>
attr
=
std
::
make_unique
<
schema
::
CastT
>
(
);
// get the dequantize input tensor
const
auto
&
in_tensor
=
tflite_tensors
[
tflite_op
->
inputs
[
0
]];
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_expand_dims_parser.cc
浏览文件 @
192262fe
...
...
@@ -28,6 +28,8 @@ STATUS TfliteExpandDimsParser::Parse(const std::unique_ptr<tflite::OperatorT> &t
std
::
vector
<
int32_t
>
*
tensors_id
,
std
::
vector
<
schema
::
Format
>
*
tensors_format
,
std
::
map
<
int
,
int
>
*
tensors_id_map
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteExpandDimsParser"
;
if
(
op
==
nullptr
)
{
MS_LOG
(
ERROR
)
<<
"op is null"
;
return
RET_NULL_PTR
;
...
...
@@ -38,8 +40,7 @@ STATUS TfliteExpandDimsParser::Parse(const std::unique_ptr<tflite::OperatorT> &t
return
RET_NULL_PTR
;
}
MS_LOG
(
DEBUG
)
<<
"parse TfliteExpandDimsParser"
;
std
::
unique_ptr
<
schema
::
ExpandDimsT
>
attr
(
new
schema
::
ExpandDimsT
());
std
::
unique_ptr
<
schema
::
ExpandDimsT
>
attr
=
std
::
make_unique
<
schema
::
ExpandDimsT
>
();
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsExpandDimsOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_fill_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteFillParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite_
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
FillT
>
attr
(
new
schema
::
FillT
()
);
std
::
unique_ptr
<
schema
::
FillT
>
attr
=
std
::
make_unique
<
schema
::
FillT
>
(
);
if
(
tflite_op
->
inputs
.
size
()
>
1
)
{
if
(
GetTfliteData
(
tflite_op
->
inputs
[
1
],
tflite_tensors
,
tflite_model_buffer
,
attr
->
dims
))
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_fullyconnected_parser.cc
浏览文件 @
192262fe
...
...
@@ -47,7 +47,7 @@ STATUS TfliteFullyConnectedParser::Parse(const std::unique_ptr<tflite::OperatorT
}
else
if
(
std
::
strcmp
(
node_name
,
"FakeQuant"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteFakeQuantParser"
;
}
std
::
unique_ptr
<
schema
::
FullConnectionT
>
attr
(
new
schema
::
FullConnectionT
()
);
std
::
unique_ptr
<
schema
::
FullConnectionT
>
attr
=
std
::
make_unique
<
schema
::
FullConnectionT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsFullyConnectedOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
@@ -55,7 +55,9 @@ STATUS TfliteFullyConnectedParser::Parse(const std::unique_ptr<tflite::OperatorT
return
RET_NULL_PTR
;
}
attr
->
hasBias
=
true
;
bool
hasBias
=
tflite_op
->
inputs
.
size
()
>
2
&&
tflite_op
->
inputs
[
2
]
!=
-
1
;
attr
->
hasBias
=
hasBias
;
attr
->
axis
=
1
;
attr
->
useAxis
=
false
;
attr
->
activationType
=
GetActivationFunctionType
(
tflite_attr
->
fused_activation_function
);
...
...
@@ -67,8 +69,10 @@ STATUS TfliteFullyConnectedParser::Parse(const std::unique_ptr<tflite::OperatorT
tflite_op
->
inputs
[
0
],
tensors_id
->
size
(),
tflite_tensors
.
size
(),
schema
::
Format_NHWC
);
AddOpInput
(
op
,
tensors_id
,
tensors_format
,
tensors_id_map
,
tflite_op
->
inputs
[
1
],
tensors_id
->
size
(),
tflite_tensors
.
size
(),
schema
::
Format_KHWC
);
AddOpInput
(
op
,
tensors_id
,
tensors_format
,
tensors_id_map
,
tflite_op
->
inputs
[
2
],
tensors_id
->
size
(),
tflite_tensors
.
size
(),
schema
::
Format_NHWC
);
if
(
hasBias
)
{
AddOpInput
(
op
,
tensors_id
,
tensors_format
,
tensors_id_map
,
tflite_op
->
inputs
[
2
],
tensors_id
->
size
(),
tflite_tensors
.
size
(),
schema
::
Format_NHWC
);
}
AddOpOutput
(
op
,
tensors_id
,
tensors_format
,
tensors_id_map
,
tflite_op
->
outputs
[
0
],
tensors_id
->
size
(),
tflite_tensors
.
size
(),
schema
::
Format_NHWC
);
return
RET_OK
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_gather_nd_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteGatherNdParser::Parse(const std::unique_ptr<tflite::OperatorT> &tfl
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
GatherNdT
>
attr
(
new
schema
::
GatherNdT
()
);
std
::
unique_ptr
<
schema
::
GatherNdT
>
attr
=
std
::
make_unique
<
schema
::
GatherNdT
>
(
);
attr
->
batchDims
=
0
;
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_GatherNd
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_gather_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteGatherParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
GatherT
>
attr
(
new
schema
::
GatherT
()
);
std
::
unique_ptr
<
schema
::
GatherT
>
attr
=
std
::
make_unique
<
schema
::
GatherT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsGatherOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_l2norm_parser.cc
浏览文件 @
192262fe
...
...
@@ -42,8 +42,16 @@ STATUS TfliteL2NormParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
L2NormT
>
attr
(
new
schema
::
L2NormT
());
std
::
unique_ptr
<
schema
::
L2NormT
>
attr
=
std
::
make_unique
<
schema
::
L2NormT
>
();
if
(
tflite_op
->
inputs
.
empty
())
{
MS_LOG
(
ERROR
)
<<
"the input is null"
;
return
RET_NULL_PTR
;
}
auto
data_index
=
tflite_op
->
inputs
[
0
];
if
(
tflite_op
->
inputs
.
size
()
<=
data_index
)
{
MS_LOG
(
ERROR
)
<<
"the size of input should be greater than "
<<
data_index
;
return
RET_ERROR
;
}
const
auto
&
data_tensor
=
tflite_tensors
[
data_index
];
if
(
data_tensor
==
nullptr
)
{
MS_LOG
(
ERROR
)
<<
"the input tensor is null"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_logical_parser.cc
浏览文件 @
192262fe
...
...
@@ -44,17 +44,17 @@ STATUS TfliteLogicalParser::Parse(const std::unique_ptr<tflite::OperatorT> &tfli
const
char
*
node_name
=
node_name_str
.
data
()
->
c_str
();
if
(
std
::
strcmp
(
node_name
,
"LogicalAnd"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteLogicalAndParser"
;
std
::
unique_ptr
<
schema
::
LogicalAndT
>
attr
(
new
schema
::
LogicalAndT
()
);
std
::
unique_ptr
<
schema
::
LogicalAndT
>
attr
=
std
::
make_unique
<
schema
::
LogicalAndT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_LogicalAnd
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"LogicalNot"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteLogicalNotParser"
;
std
::
unique_ptr
<
schema
::
LogicalNotT
>
attr
(
new
schema
::
LogicalNotT
()
);
std
::
unique_ptr
<
schema
::
LogicalNotT
>
attr
=
std
::
make_unique
<
schema
::
LogicalNotT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_LogicalNot
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
else
if
(
std
::
strcmp
(
node_name
,
"LogicalOr"
)
==
0
)
{
MS_LOG
(
DEBUG
)
<<
"parse TfliteLogicalOrParser"
;
std
::
unique_ptr
<
schema
::
LogicalOrT
>
attr
(
new
schema
::
LogicalOrT
()
);
std
::
unique_ptr
<
schema
::
LogicalOrT
>
attr
=
std
::
make_unique
<
schema
::
LogicalOrT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_LogicalOr
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
}
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_lrn_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteLRNParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite_o
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
LocalResponseNormalizationT
>
attr
(
new
schema
::
LocalResponseNormalizationT
()
);
std
::
unique_ptr
<
schema
::
LocalResponseNormalizationT
>
attr
=
std
::
make_unique
<
schema
::
LocalResponseNormalizationT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsLocalResponseNormalizationOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_model_parser.cc
浏览文件 @
192262fe
...
...
@@ -43,7 +43,8 @@ std::unique_ptr<tflite::ModelT> TfliteModelParser::ReadTfliteModel(const char *m
}
STATUS
TfliteModelParser
::
CopyConstTensorData
(
const
std
::
vector
<
std
::
unique_ptr
<
tflite
::
BufferT
>>
&
tflite_model_buffer
,
const
tflite
::
TensorT
*
tflite_tensor
,
schema
::
TensorT
*
tensor
)
{
const
tflite
::
TensorT
*
tflite_tensor
,
schema
::
TensorT
*
tensor
)
{
auto
count
=
1
;
std
::
for_each
(
tflite_tensor
->
shape
.
begin
(),
tflite_tensor
->
shape
.
end
(),
[
&
](
int32_t
sha
)
{
count
*=
sha
;
});
auto
data_size
=
count
*
GetDataTypeSize
(
TypeId
(
tensor
->
dataType
));
...
...
@@ -91,7 +92,8 @@ void TfliteModelParser::SetTensorQuantParam(const std::unique_ptr<tflite::Tensor
STATUS
TfliteModelParser
::
ConvertOp
(
const
std
::
unique_ptr
<
tflite
::
ModelT
>
&
tflite_model
,
const
std
::
unique_ptr
<
tflite
::
SubGraphT
>
&
tflite_subgraph
,
const
QuantType
&
quant_type
,
schema
::
MetaGraphT
*
sub_graph
)
{
const
QuantType
&
quant_type
,
schema
::
MetaGraphT
*
sub_graph
)
{
int
idx
=
0
;
for
(
const
auto
&
tflite_op
:
tflite_subgraph
->
operators
)
{
auto
tflite_op_type
=
(
tflite_model
->
operator_codes
[
tflite_op
->
opcode_index
])
->
builtin_code
;
...
...
@@ -293,7 +295,8 @@ STATUS TfliteModelParser::ConvertGroupDepthwiseOp(schema::MetaGraphT* sub_graph)
return
RET_OK
;
}
MetaGraphT
*
TfliteModelParser
::
Parse
(
const
std
::
string
&
model_file
,
const
std
::
string
&
weight_file
,
MetaGraphT
*
TfliteModelParser
::
Parse
(
const
std
::
string
&
model_file
,
const
std
::
string
&
weight_file
,
const
QuantType
&
quant_type
)
{
std
::
unique_ptr
<
schema
::
MetaGraphT
>
sub_graph
(
new
schema
::
MetaGraphT
);
sub_graph
->
name
=
"MS_model converted by TF-Lite"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_model_parser.h
浏览文件 @
192262fe
...
...
@@ -58,14 +58,14 @@ class TfliteModelParser : public ModelParser {
STATUS
ConvertOp
(
const
std
::
unique_ptr
<
tflite
::
ModelT
>
&
tflite_model
,
const
std
::
unique_ptr
<
tflite
::
SubGraphT
>
&
tflite_subgraph
,
const
QuantType
&
quant_type
,
schema
::
MetaGraphT
*
sub_graph
);
schema
::
MetaGraphT
*
sub_graph
);
STATUS
ConvertTensor
(
const
std
::
unique_ptr
<
tflite
::
SubGraphT
>
&
tflite_subgraph
,
const
std
::
vector
<
std
::
unique_ptr
<
tflite
::
BufferT
>>
&
tflite_model_buffer
,
schema
::
MetaGraphT
*
sub_graph
);
schema
::
MetaGraphT
*
sub_graph
);
STATUS
GetGraphInfo
(
const
std
::
unique_ptr
<
tflite
::
SubGraphT
>
&
tflite_subgraph
,
schema
::
MetaGraphT
*
sub_graph
);
schema
::
MetaGraphT
*
sub_graph
);
STATUS
ConvertGroupDepthwiseOp
(
schema
::
MetaGraphT
*
sub_graph
);
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_one_hot_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteOneHotParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
OneHotT
>
attr
(
new
schema
::
OneHotT
()
);
std
::
unique_ptr
<
schema
::
OneHotT
>
attr
=
std
::
make_unique
<
schema
::
OneHotT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsOneHotOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_pad_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TflitePadParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite_o
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
PadT
>
attr
(
new
schema
::
PadT
()
);
std
::
unique_ptr
<
schema
::
PadT
>
attr
=
std
::
make_unique
<
schema
::
PadT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsPadOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_pooling_parser.cc
浏览文件 @
192262fe
...
...
@@ -39,7 +39,7 @@ STATUS TflitePoolingParser::Parse(const std::unique_ptr<tflite::OperatorT> &tfli
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
PoolingT
>
attr
(
new
schema
::
PoolingT
()
);
std
::
unique_ptr
<
schema
::
PoolingT
>
attr
=
std
::
make_unique
<
schema
::
PoolingT
>
(
);
std
::
vector
<
std
::
string
>
node_name_str
;
Split
(
op
->
name
,
&
node_name_str
,
"-"
);
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_range_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteRangeParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
RangeT
>
attr
(
new
schema
::
RangeT
()
);
std
::
unique_ptr
<
schema
::
RangeT
>
attr
=
std
::
make_unique
<
schema
::
RangeT
>
(
);
attr
->
dType
=
0
;
// attr->start
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_rank_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteRankParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite_
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
RankT
>
attr
(
new
schema
::
RankT
()
);
std
::
unique_ptr
<
schema
::
RankT
>
attr
=
std
::
make_unique
<
schema
::
RankT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Rank
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_reduce_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteReduceParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ReduceT
>
attr
(
new
schema
::
ReduceT
()
);
std
::
unique_ptr
<
schema
::
ReduceT
>
attr
=
std
::
make_unique
<
schema
::
ReduceT
>
(
);
// auto tflite_tensors = tflite_subgraph->tensors;
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsReducerOptions
();
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_reshape_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteReshapeParser::Parse(const std::unique_ptr<tflite::OperatorT> &tfli
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ReshapeT
>
attr
(
new
schema
::
ReshapeT
()
);
std
::
unique_ptr
<
schema
::
ReshapeT
>
attr
=
std
::
make_unique
<
schema
::
ReshapeT
>
(
);
const
auto
&
tfliteAttr
=
tflite_op
->
builtin_options
.
AsReshapeOptions
();
if
(
tfliteAttr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_resize_parser.cc
浏览文件 @
192262fe
...
...
@@ -39,7 +39,7 @@ STATUS TfliteResizeParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ResizeT
>
attr
(
new
schema
::
ResizeT
()
);
std
::
unique_ptr
<
schema
::
ResizeT
>
attr
=
std
::
make_unique
<
schema
::
ResizeT
>
(
);
std
::
vector
<
std
::
string
>
node_name_str
;
Split
(
op
->
name
.
data
(),
&
node_name_str
,
"-"
);
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_reverse_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteReverseParser::Parse(const std::unique_ptr<tflite::OperatorT> &tfli
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ReverseT
>
attr
(
new
schema
::
ReverseT
()
);
std
::
unique_ptr
<
schema
::
ReverseT
>
attr
=
std
::
make_unique
<
schema
::
ReverseT
>
(
);
if
(
GetTfliteData
(
tflite_op
->
inputs
[
1
],
tflite_tensors
,
tflite_model_buffer
,
attr
->
axis
))
{
MS_LOG
(
ERROR
)
<<
"get reverse -> axis failed"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_reverse_sequence_parser.cc
浏览文件 @
192262fe
...
...
@@ -42,7 +42,7 @@ STATUS TfliteReverseSequenceParser::Parse(const std::unique_ptr<tflite::Operator
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ReverseSequenceT
>
attr
(
new
schema
::
ReverseSequenceT
()
);
std
::
unique_ptr
<
schema
::
ReverseSequenceT
>
attr
=
std
::
make_unique
<
schema
::
ReverseSequenceT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsReverseSequenceOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_scatter_nd_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteScatterNdParser::Parse(const std::unique_ptr<tflite::OperatorT> &tf
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ScatterNDT
>
attr
(
new
schema
::
ScatterNDT
()
);
std
::
unique_ptr
<
schema
::
ScatterNDT
>
attr
=
std
::
make_unique
<
schema
::
ScatterNDT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsScatterNdOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_shape_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteShapeParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ShapeT
>
attr
(
new
schema
::
ShapeT
()
);
std
::
unique_ptr
<
schema
::
ShapeT
>
attr
=
std
::
make_unique
<
schema
::
ShapeT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_Shape
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_slice_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteSliceParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
SliceT
>
attr
(
new
schema
::
SliceT
()
);
std
::
unique_ptr
<
schema
::
SliceT
>
attr
=
std
::
make_unique
<
schema
::
SliceT
>
(
);
attr
->
format
=
schema
::
Format_NHWC
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_softmax_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteSoftmaxParser::Parse(const std::unique_ptr<tflite::OperatorT> &tfli
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
SoftMaxT
>
attr
(
new
schema
::
SoftMaxT
()
);
std
::
unique_ptr
<
schema
::
SoftMaxT
>
attr
=
std
::
make_unique
<
schema
::
SoftMaxT
>
(
);
attr
->
axis
=
-
1
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_space_to_batch_nd_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteSpaceToBatchNDParser::Parse(const std::unique_ptr<tflite::OperatorT
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
SpaceToBatchNDT
>
attr
(
new
schema
::
SpaceToBatchNDT
()
);
std
::
unique_ptr
<
schema
::
SpaceToBatchNDT
>
attr
=
std
::
make_unique
<
schema
::
SpaceToBatchNDT
>
(
);
if
(
GetTfliteData
(
tflite_op
->
inputs
[
1
],
tflite_tensors
,
tflite_model_buffer
,
attr
->
blockShape
))
{
MS_LOG
(
ERROR
)
<<
"get spaceToBatchND -> blockShape failed"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_space_to_depth_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteSpaceToDepthParser::Parse(const std::unique_ptr<tflite::OperatorT>
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
SpaceToDepthT
>
attr
(
new
schema
::
SpaceToDepthT
()
);
std
::
unique_ptr
<
schema
::
SpaceToDepthT
>
attr
=
std
::
make_unique
<
schema
::
SpaceToDepthT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsSpaceToDepthOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_sparse_to_dense_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteSparseToDenseParser::Parse(const std::unique_ptr<tflite::OperatorT>
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
SparseToDenseT
>
attr
(
new
schema
::
SparseToDenseT
()
);
std
::
unique_ptr
<
schema
::
SparseToDenseT
>
attr
=
std
::
make_unique
<
schema
::
SparseToDenseT
>
(
);
attr
->
validateIndices
=
false
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_split_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteSplitParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
SplitT
>
attr
(
new
schema
::
SplitT
()
);
std
::
unique_ptr
<
schema
::
SplitT
>
attr
=
std
::
make_unique
<
schema
::
SplitT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsSplitOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_split_v_parser.cc
浏览文件 @
192262fe
...
...
@@ -39,7 +39,7 @@ STATUS TfliteSplitVParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
}
MS_LOG
(
DEBUG
)
<<
"parse TfliteSplitVParser"
;
std
::
unique_ptr
<
schema
::
SplitT
>
attr
(
new
schema
::
SplitT
()
);
std
::
unique_ptr
<
schema
::
SplitT
>
attr
=
std
::
make_unique
<
schema
::
SplitT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsSplitVOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_squeeze_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteSqueezeParser::Parse(const std::unique_ptr<tflite::OperatorT> &tfli
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
SqueezeT
>
attr
(
new
schema
::
SqueezeT
()
);
std
::
unique_ptr
<
schema
::
SqueezeT
>
attr
=
std
::
make_unique
<
schema
::
SqueezeT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsSqueezeOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_stack_parser.cc
浏览文件 @
192262fe
...
...
@@ -40,7 +40,7 @@ STATUS TfliteStackParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
StackT
>
attr
(
new
schema
::
StackT
()
);
std
::
unique_ptr
<
schema
::
StackT
>
attr
=
std
::
make_unique
<
schema
::
StackT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsPackOptions
();
if
(
tflite_attr
==
nullptr
)
{
MS_LOG
(
ERROR
)
<<
"get op: "
<<
op
->
name
.
c_str
()
<<
" attr failed"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_strided_slice_parser.cc
浏览文件 @
192262fe
...
...
@@ -39,7 +39,7 @@ STATUS TfliteStridedSliceParser::Parse(const std::unique_ptr<tflite::OperatorT>
}
MS_LOG
(
DEBUG
)
<<
"parse TfliteStridedSliceParser"
;
std
::
unique_ptr
<
schema
::
StridedSliceT
>
attr
(
new
schema
::
StridedSliceT
()
);
std
::
unique_ptr
<
schema
::
StridedSliceT
>
attr
=
std
::
make_unique
<
schema
::
StridedSliceT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsStridedSliceOptions
();
if
(
tflite_attr
==
nullptr
)
{
MS_LOG
(
ERROR
)
<<
"get op: %s attr failed"
,
op
->
name
.
c_str
();
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_tile_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteTileParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite_
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
TileT
>
attr
(
new
schema
::
TileT
()
);
std
::
unique_ptr
<
schema
::
TileT
>
attr
=
std
::
make_unique
<
schema
::
TileT
>
(
);
if
(
GetTfliteData
(
tflite_op
->
inputs
[
1
],
tflite_tensors
,
tflite_model_buffer
,
attr
->
multiples
))
{
MS_LOG
(
ERROR
)
<<
"get tile -> multiples failed"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_topk_v2_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteTopKV2Parser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
TopKT
>
attr
(
new
schema
::
TopKT
()
);
std
::
unique_ptr
<
schema
::
TopKT
>
attr
=
std
::
make_unique
<
schema
::
TopKT
>
(
);
attr
->
sorted
=
true
;
std
::
vector
<
int32_t
>
k
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_transpose_parser.cc
浏览文件 @
192262fe
...
...
@@ -39,7 +39,7 @@ STATUS TfliteTransposeParser::Parse(const std::unique_ptr<tflite::OperatorT> &tf
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
TransposeT
>
attr
(
new
schema
::
TransposeT
()
);
std
::
unique_ptr
<
schema
::
TransposeT
>
attr
=
std
::
make_unique
<
schema
::
TransposeT
>
(
);
if
(
GetTfliteData
(
tflite_op
->
inputs
[
1
],
tflite_tensors
,
tflite_model_buffer
,
attr
->
perm
))
{
MS_LOG
(
ERROR
)
<<
"get transpose -> perm failed"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_unique_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteUniqueParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflit
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
UniqueT
>
attr
(
new
schema
::
UniqueT
()
);
std
::
unique_ptr
<
schema
::
UniqueT
>
attr
=
std
::
make_unique
<
schema
::
UniqueT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsUniqueOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_unstack_parser.cc
浏览文件 @
192262fe
...
...
@@ -42,7 +42,7 @@ STATUS TfliteUnstackParser::Parse(const std::unique_ptr<tflite::OperatorT> &tfli
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
UnstackT
>
attr
(
new
schema
::
UnstackT
()
);
std
::
unique_ptr
<
schema
::
UnstackT
>
attr
=
std
::
make_unique
<
schema
::
UnstackT
>
(
);
const
auto
&
tflite_attr
=
tflite_op
->
builtin_options
.
AsUnpackOptions
();
if
(
tflite_attr
==
nullptr
)
{
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_where_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteWhereParser::Parse(const std::unique_ptr<tflite::OperatorT> &tflite
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
WhereT
>
attr
(
new
schema
::
WhereT
()
);
std
::
unique_ptr
<
schema
::
WhereT
>
attr
=
std
::
make_unique
<
schema
::
WhereT
>
(
);
if
(
GetTfliteData
(
tflite_op
->
inputs
[
0
],
tflite_tensors
,
tflite_model_buffer
,
attr
->
condition
))
{
MS_LOG
(
ERROR
)
<<
"get where -> condition failed"
;
...
...
mindspore/lite/tools/converter/parser/tflite/tflite_zeros_like_parser.cc
浏览文件 @
192262fe
...
...
@@ -41,7 +41,7 @@ STATUS TfliteZerosLikeParser::Parse(const std::unique_ptr<tflite::OperatorT> &tf
return
RET_NULL_PTR
;
}
std
::
unique_ptr
<
schema
::
ZerosLikeT
>
attr
(
new
schema
::
ZerosLikeT
()
);
std
::
unique_ptr
<
schema
::
ZerosLikeT
>
attr
=
std
::
make_unique
<
schema
::
ZerosLikeT
>
(
);
op
->
primitive
->
value
.
type
=
schema
::
PrimitiveType_ZerosLike
;
op
->
primitive
->
value
.
value
=
attr
.
release
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录