Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
15564504
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看板
提交
15564504
编写于
8月 22, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
8月 22, 2020
浏览文件
操作
浏览文件
下载
差异文件
!4972 fix post training quant
Merge pull request !4972 from xutianchun/quant_0822
上级
e2203bed
1ae9f81c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
6 addition
and
6 deletion
+6
-6
mindspore/lite/tools/converter/quantizer/post_training_quantizer.cc
...lite/tools/converter/quantizer/post_training_quantizer.cc
+3
-3
mindspore/lite/tools/converter/quantizer/quant_cast.cc
mindspore/lite/tools/converter/quantizer/quant_cast.cc
+1
-1
mindspore/lite/tools/converter/quantizer/quantize_util.cc
mindspore/lite/tools/converter/quantizer/quantize_util.cc
+2
-2
未找到文件。
mindspore/lite/tools/converter/quantizer/post_training_quantizer.cc
浏览文件 @
15564504
...
@@ -227,10 +227,10 @@ struct DivergInfo {
...
@@ -227,10 +227,10 @@ struct DivergInfo {
int
zero_point
=
0
;
int
zero_point
=
0
;
if
(
quant_min
==
0
&&
quant_max
==
255
)
{
if
(
quant_min
==
0
&&
quant_max
==
255
)
{
zero_point
=
128
;
zero_point
=
128
;
}
else
if
(
quant_min
==
-
12
8
&&
quant_max
==
127
)
{
}
else
if
(
quant_min
==
-
12
7
&&
quant_max
==
127
)
{
zero_point
=
0
;
zero_point
=
0
;
}
else
{
}
else
{
MS_LOG
(
ERROR
)
<<
"unexpectd quant range, quant_min: "
<<
quant_min
<<
" quant_max: "
<<
quant_max
;
MS_LOG
(
WARNING
)
<<
"unexpectd quant range, quant_min: "
<<
quant_min
<<
" quant_max: "
<<
quant_max
;
}
}
return
std
::
make_pair
(
this
->
cnode
,
zero_point
);
return
std
::
make_pair
(
this
->
cnode
,
zero_point
);
}
}
...
@@ -486,7 +486,7 @@ PostTrainingQuantizer::PostTrainingQuantizer(FuncGraphPtr graph, string path, in
...
@@ -486,7 +486,7 @@ PostTrainingQuantizer::PostTrainingQuantizer(FuncGraphPtr graph, string path, in
this
->
target_type_
=
target_type
;
this
->
target_type_
=
target_type
;
if
(
target_type
==
kNumberTypeInt8
)
{
if
(
target_type
==
kNumberTypeInt8
)
{
quant_max
=
(
1
<<
(
this
->
bit_num
-
1
))
-
1
;
// 127
quant_max
=
(
1
<<
(
this
->
bit_num
-
1
))
-
1
;
// 127
quant_min
=
-
(
1
<<
(
this
->
bit_num
-
1
));
// -128
quant_min
=
-
quant_max
;
// -127
}
else
if
(
target_type
==
kNumberTypeUInt8
)
{
}
else
if
(
target_type
==
kNumberTypeUInt8
)
{
quant_max
=
(
1
<<
this
->
bit_num
)
-
1
;
// 255
quant_max
=
(
1
<<
this
->
bit_num
)
-
1
;
// 255
quant_min
=
0
;
quant_min
=
0
;
...
...
mindspore/lite/tools/converter/quantizer/quant_cast.cc
浏览文件 @
15564504
...
@@ -100,7 +100,7 @@ STATUS QuantCast::Run(FuncGraphPtr graph) {
...
@@ -100,7 +100,7 @@ STATUS QuantCast::Run(FuncGraphPtr graph) {
}
}
std
::
vector
<
AnfNodePtr
>
op_inputs
=
{
value_node
,
input_cnode
};
std
::
vector
<
AnfNodePtr
>
op_inputs
=
{
value_node
,
input_cnode
};
auto
quant_cast_cnode
=
graph
->
NewCNode
(
op_inputs
);
auto
quant_cast_cnode
=
graph
->
NewCNode
(
op_inputs
);
quant_cast_cnode
->
set_fullname_with_scope
(
cnode
->
fullname_with_scope
()
+
"_quant_cast
"
);
quant_cast_cnode
->
set_fullname_with_scope
(
cnode
->
fullname_with_scope
()
+
"_quant_cast
_"
+
std
::
to_string
(
i
)
);
cnode
->
set_input
(
i
,
quant_cast_cnode
);
cnode
->
set_input
(
i
,
quant_cast_cnode
);
MS_LOG
(
DEBUG
)
<<
"Add quant cast. "
MS_LOG
(
DEBUG
)
<<
"Add quant cast. "
<<
"cur_node: "
<<
cnode
->
fullname_with_scope
()
<<
" quant_type: "
<<
curnode_quant_type
<<
"cur_node: "
<<
cnode
->
fullname_with_scope
()
<<
" quant_type: "
<<
curnode_quant_type
...
...
mindspore/lite/tools/converter/quantizer/quantize_util.cc
浏览文件 @
15564504
...
@@ -220,11 +220,11 @@ STATUS CalQuantizationParams(schema::QuantParamT *quantParam, double mMin, doubl
...
@@ -220,11 +220,11 @@ STATUS CalQuantizationParams(schema::QuantParamT *quantParam, double mMin, doubl
bool
narrowRange
,
int
numBits
)
{
bool
narrowRange
,
int
numBits
)
{
MS_ASSERT
(
quantParam
!=
nullptr
);
MS_ASSERT
(
quantParam
!=
nullptr
);
if
(
mMin
>
0.0
f
)
{
if
(
mMin
>
0.0
f
)
{
MS_LOG
(
ERROR
)
<<
"min "
<<
mMin
<<
" is bigger then 0, set to 0, this may course low precision"
;
MS_LOG
(
DEBUG
)
<<
"min "
<<
mMin
<<
" is bigger then 0, set to 0, this may course low precision"
;
mMin
=
0.0
f
;
mMin
=
0.0
f
;
}
}
if
(
mMax
<
0.0
f
)
{
if
(
mMax
<
0.0
f
)
{
MS_LOG
(
ERROR
)
<<
"mMax "
<<
mMax
<<
" is smaller than 0, set to 0, this may course low precision"
;
MS_LOG
(
DEBUG
)
<<
"mMax "
<<
mMax
<<
" is smaller than 0, set to 0, this may course low precision"
;
mMax
=
0.0
f
;
mMax
=
0.0
f
;
}
}
if
(
mMin
>
mMax
)
{
if
(
mMin
>
mMax
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录