Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
Mace
提交
b5830970
Mace
项目概览
慢慢CG
/
Mace
与 Fork 源项目一致
Fork自
Xiaomi / Mace
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Mace
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
b5830970
编写于
5月 28, 2019
作者:
L
luxuhui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix bug on op selection
N/A Signed-off-by:
N
Luxuhui
<
luxuhui@xiaomi.com
>
上级
7fa03dd2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
8 addition
and
7 deletion
+8
-7
mace/core/operator.cc
mace/core/operator.cc
+8
-7
未找到文件。
mace/core/operator.cc
浏览文件 @
b5830970
...
@@ -114,8 +114,7 @@ OpInitContext::OpInitContext(Workspace *ws, Device *device)
...
@@ -114,8 +114,7 @@ OpInitContext::OpInitContext(Workspace *ws, Device *device)
:
ws_
(
ws
),
device_
(
device
)
{}
:
ws_
(
ws
),
device_
(
device
)
{}
Operation
::
Operation
(
OpConstructContext
*
context
)
Operation
::
Operation
(
OpConstructContext
*
context
)
:
operator_def_
(
context
->
operator_def
())
:
operator_def_
(
context
->
operator_def
())
{}
{}
MaceStatus
Operation
::
Init
(
OpInitContext
*
context
)
{
MaceStatus
Operation
::
Init
(
OpInitContext
*
context
)
{
Workspace
*
ws
=
context
->
workspace
();
Workspace
*
ws
=
context
->
workspace
();
...
@@ -142,7 +141,7 @@ MaceStatus Operation::Init(OpInitContext *context) {
...
@@ -142,7 +141,7 @@ MaceStatus Operation::Init(OpInitContext *context) {
}
else
{
}
else
{
output_type
=
static_cast
<
DataType
>
(
output_type
=
static_cast
<
DataType
>
(
ProtoArgHelper
::
GetOptionalArg
<
OperatorDef
,
int
>
(
ProtoArgHelper
::
GetOptionalArg
<
OperatorDef
,
int
>
(
*
operator_def_
,
"T"
,
static_cast
<
int
>
(
DT_FLOAT
)));
*
operator_def_
,
"T"
,
static_cast
<
int
>
(
DT_FLOAT
)));
}
}
outputs_
.
push_back
(
MACE_CHECK_NOTNULL
(
ws
->
CreateTensor
(
outputs_
.
push_back
(
MACE_CHECK_NOTNULL
(
ws
->
CreateTensor
(
output_str
,
context
->
device
()
->
allocator
(),
output_type
)));
output_str
,
context
->
device
()
->
allocator
(),
output_type
)));
...
@@ -316,9 +315,11 @@ std::unique_ptr<Operation> OpRegistryBase::CreateOperation(
...
@@ -316,9 +315,11 @@ std::unique_ptr<Operation> OpRegistryBase::CreateOperation(
MACE_CHECK
(
registry_
.
count
(
op_type
)
!=
0
,
MACE_CHECK
(
registry_
.
count
(
op_type
)
!=
0
,
op_type
,
" operation is not registered."
);
op_type
,
" operation is not registered."
);
auto
key_dtype
=
(
device_type
==
DeviceType
::
GPU
&&
dtype
==
DT_HALF
)
?
DT_FLOAT
:
dtype
;
std
::
string
key
=
OpKeyBuilder
(
op_type
)
std
::
string
key
=
OpKeyBuilder
(
op_type
)
.
Device
(
device_type
)
.
Device
(
device_type
)
.
TypeConstraint
(
"T"
,
dtype
==
DT_HALF
?
DT_FLOAT
:
dtype
)
.
TypeConstraint
(
"T"
,
key_
dtype
)
.
Build
();
.
Build
();
if
(
registry_
.
at
(
op_type
)
->
creators
.
count
(
key
)
==
0
)
{
if
(
registry_
.
at
(
op_type
)
->
creators
.
count
(
key
)
==
0
)
{
LOG
(
FATAL
)
<<
"Key not registered: "
<<
key
;
LOG
(
FATAL
)
<<
"Key not registered: "
<<
key
;
...
@@ -327,7 +328,7 @@ std::unique_ptr<Operation> OpRegistryBase::CreateOperation(
...
@@ -327,7 +328,7 @@ std::unique_ptr<Operation> OpRegistryBase::CreateOperation(
}
}
OpConditionBuilder
::
OpConditionBuilder
(
const
std
::
string
&
type
)
OpConditionBuilder
::
OpConditionBuilder
(
const
std
::
string
&
type
)
:
type_
(
type
)
{}
:
type_
(
type
)
{}
const
std
::
string
OpConditionBuilder
::
type
()
const
{
const
std
::
string
OpConditionBuilder
::
type
()
const
{
return
type_
;
return
type_
;
...
@@ -339,13 +340,13 @@ OpConditionBuilder &OpConditionBuilder::SetDevicePlacerFunc(
...
@@ -339,13 +340,13 @@ OpConditionBuilder &OpConditionBuilder::SetDevicePlacerFunc(
return
*
this
;
return
*
this
;
}
}
OpConditionBuilder
&
OpConditionBuilder
::
SetInputMemoryTypeSetter
(
OpConditionBuilder
&
OpConditionBuilder
::
SetInputMemoryTypeSetter
(
OpRegistrationInfo
::
MemoryTypeSetter
setter
)
{
OpRegistrationInfo
::
MemoryTypeSetter
setter
)
{
memory_type_setter_
=
setter
;
memory_type_setter_
=
setter
;
return
*
this
;
return
*
this
;
}
}
OpConditionBuilder
&
OpConditionBuilder
::
SetInputsDataFormatSelector
(
OpConditionBuilder
&
OpConditionBuilder
::
SetInputsDataFormatSelector
(
OpRegistrationInfo
::
DataFormatSelector
selector
)
{
OpRegistrationInfo
::
DataFormatSelector
selector
)
{
data_format_selector_
=
selector
;
data_format_selector_
=
selector
;
return
*
this
;
return
*
this
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录