Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
Mace
提交
9aabdccc
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看板
提交
9aabdccc
编写于
9月 06, 2017
作者:
L
liuqi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add cpu test util to simplify the unit test.
上级
196fd847
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
41 addition
and
12 deletion
+41
-12
mace/ops/BUILD
mace/ops/BUILD
+35
-6
mace/ops/batch_norm.h
mace/ops/batch_norm.h
+5
-5
mace/ops/ops_test_util.h
mace/ops/ops_test_util.h
+1
-1
未找到文件。
mace/ops/BUILD
浏览文件 @
9aabdccc
...
...
@@ -5,20 +5,49 @@ package(
default_visibility
=
[
"//visibility:public"
],
)
licenses
([
"notice"
])
# Apache 2.0
load
(
"//mace:mace.bzl"
,
"if_android"
)
cc_library
(
name
=
"test"
,
testonly
=
1
,
srcs
=
[
"ops_test_util.h"
,
],
deps
=
[
"//mace/core"
,
"@gtest//:gtest"
,
],
)
cc_library
(
name
=
"ops"
,
srcs
=
glob
([
"*.cc"
]),
hdrs
=
glob
([
"*.h"
]),
srcs
=
[
"batch_norm.cc"
,
"relu.cc"
,
],
hdrs
=
glob
([
"relu.h"
,
"batch_norm.h"
,
]),
copts
=
[
"-std=c++11"
],
deps
=
[
"//mace/core"
,
"//mace/kernels"
,
"//mace/proto:cc_proto"
,
"//mace/core:core"
,
"//mace/kernels:kernels"
,
],
copts
=
[
'-std=c++11'
],
alwayslink
=
1
,
)
cc_test
(
name
=
"batch_norm_test"
,
srcs
=
[
"batch_norm_test.cc"
],
copts
=
[
"-std=c++11"
],
linkstatic
=
1
,
deps
=
[
":ops"
,
":test"
,
"@gtest//:gtest_main"
,
],
)
mace/ops/batch_norm.h
浏览文件 @
9aabdccc
...
...
@@ -25,11 +25,11 @@ class BatchNormOp : public Operator<D, T> {
const
float
variance_epsilon
=
this
->
template
GetSingleArgument
<
float
>(
"variance_epsilon"
,
1e-4
);
REQUIRE
(
input
->
dim_size
()
==
4
,
"input must be 4-dimensional. "
,
input
->
dim_size
());
REQUIRE
(
scale
->
dim_size
()
==
1
,
"scale must be 1-dimensional. "
,
scale
->
dim_size
());
REQUIRE
(
offset
->
dim_size
()
==
1
,
"offset must be 1-dimensional. "
,
offset
->
dim_size
());
REQUIRE
(
mean
->
dim_size
()
==
1
,
"mean must be 1-dimensional. "
,
mean
->
dim_size
());
REQUIRE
(
var
->
dim_size
()
==
1
,
"var must be 1-dimensional. "
,
var
->
dim_size
());
MACE_CHECK
(
input
->
dim_size
()
==
4
,
"input must be 4-dimensional. "
,
input
->
dim_size
());
MACE_CHECK
(
scale
->
dim_size
()
==
1
,
"scale must be 1-dimensional. "
,
scale
->
dim_size
());
MACE_CHECK
(
offset
->
dim_size
()
==
1
,
"offset must be 1-dimensional. "
,
offset
->
dim_size
());
MACE_CHECK
(
mean
->
dim_size
()
==
1
,
"mean must be 1-dimensional. "
,
mean
->
dim_size
());
MACE_CHECK
(
var
->
dim_size
()
==
1
,
"var must be 1-dimensional. "
,
var
->
dim_size
());
Tensor
*
output
=
this
->
Output
(
0
);
output
->
ResizeLike
(
input
);
...
...
mace/ops/ops_test_util.h
浏览文件 @
9aabdccc
...
...
@@ -27,7 +27,7 @@ class OpDefBuilder {
return
*
this
;
}
void
Finalize
(
OperatorDef
*
op_def
)
const
{
REQUIRE
(
op_def
!=
NULL
,
"input should not be null."
);
MACE_CHECK
(
op_def
!=
NULL
,
"input should not be null."
);
*
op_def
=
op_def_
;
}
OperatorDef
op_def_
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录