Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
8ac582ab
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看板
提交
8ac582ab
编写于
6月 22, 2020
作者:
L
liangzelang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
make notes more clear and accurate
上级
f3044f00
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
5 deletion
+21
-5
mindspore/ccsrc/ir/dtype/type_id.h
mindspore/ccsrc/ir/dtype/type_id.h
+10
-0
mindspore/ccsrc/operator/composite/do_signature.cc
mindspore/ccsrc/operator/composite/do_signature.cc
+11
-5
未找到文件。
mindspore/ccsrc/ir/dtype/type_id.h
浏览文件 @
8ac582ab
...
...
@@ -19,6 +19,9 @@
#ifndef MINDSPORE_CCSRC_IR_DTYPE_TYPE_ID_H_
#define MINDSPORE_CCSRC_IR_DTYPE_TYPE_ID_H_
#include <unordered_map>
#include <string>
namespace
mindspore
{
//
// Supported meta type
...
...
@@ -77,5 +80,12 @@ enum TypeId : int {
kNumberTypeFloat64
,
kNumberTypeEnd
};
//
// TypeId name map
//
const
std
::
unordered_map
<
TypeId
,
std
::
string
>
type_name_map
=
{
{
kNumberTypeBool
,
"Bool"
},
{
kNumberTypeInt8
,
"Int8"
},
{
kNumberTypeUInt8
,
"UInt8"
},
{
kNumberTypeInt16
,
"Int16"
},
{
kNumberTypeInt32
,
"Int32"
},
{
kNumberTypeInt64
,
"Int64"
},
{
kNumberTypeFloat16
,
"Float16"
},
{
kNumberTypeFloat32
,
"Float32"
},
{
kNumberTypeFloat64
,
"Float64"
}};
}
// namespace mindspore
#endif // MINDSPORE_CCSRC_IR_DTYPE_TYPE_ID_H_
mindspore/ccsrc/operator/composite/do_signature.cc
浏览文件 @
8ac582ab
...
...
@@ -215,15 +215,21 @@ void DoAutoCast(const std::string &func_name, const std::vector<Signature> &sign
TypeId
arg_type_id
=
kTypeUnknown
;
AbstractBasePtr
arg_value
=
args_spec_list
[
i
];
(
void
)
GetTensorOrScalarTypeInfo
(
arg_value
,
is_write
,
&
arg_type_id
);
auto
it_map
=
type_map
.
find
(
arg_type_id
);
if
(
it_map
==
type_map
.
end
())
{
auto
it_map
=
type_
name_
map
.
find
(
arg_type_id
);
if
(
it_map
==
type_
name_
map
.
end
())
{
continue
;
}
if
(
is_write
)
{
if
(
arg_type_id
!=
it
->
second
)
{
MS_LOG
(
EXCEPTION
)
<<
"In op '"
<<
func_name
<<
"', argument '"
<<
args_spec_list
[
i
]
<<
"' can not cast type from '"
<<
TypeIdLabel
(
arg_type_id
)
<<
"' to '"
<<
TypeIdLabel
(
it
->
second
)
<<
"' automatically."
;
auto
it_name_map
=
type_name_map
.
find
(
it
->
second
);
if
(
it_name_map
==
type_name_map
.
end
())
{
continue
;
}
MS_LOG
(
EXCEPTION
)
<<
"In op '"
<<
func_name
<<
"',
\n
"
<<
"the type of writable argument is '"
<<
it_map
->
second
<<
"', "
<<
"but the largest type in the same SignatureEumDtype is '"
<<
it_name_map
->
second
<<
"'. The writable arg type is not equal to the largest type, "
<<
"so can not cast automatically."
;
}
continue
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录