Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Xiaomi
Mace
提交
4727af0d
Mace
项目概览
Xiaomi
/
Mace
通知
106
Star
40
Fork
27
代码
文件
提交
分支
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4727af0d
编写于
9月 14, 2017
作者:
L
liuqi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix bug: construct padding before neon kernel.
上级
48aa5200
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
11 addition
and
11 deletion
+11
-11
mace/kernels/neon/conv_2d_neon.cc
mace/kernels/neon/conv_2d_neon.cc
+3
-3
mace/ops/conv_2d_test.cc
mace/ops/conv_2d_test.cc
+8
-8
未找到文件。
mace/kernels/neon/conv_2d_neon.cc
浏览文件 @
4727af0d
...
...
@@ -31,9 +31,9 @@ static inline void ConstructInputWithPadding(const float* input,
// Skip the padded top rows
output_ptr
+=
padded_top
*
output_width
;
for
(
;
batch
>
0
;
--
batch
)
{
for
(
;
channels
>
0
;
--
channels
)
{
for
(;
height
>
0
;
--
height
)
{
for
(
int
i
=
0
;
i
<
batch
;
++
i
)
{
for
(
int
j
=
0
;
j
<
channels
;
++
j
)
{
for
(
int
k
=
0
;
k
<
height
;
++
k
)
{
memcpy
(
output_ptr
+
padded_left
,
input
,
width
*
sizeof
(
float
));
input
+=
width
;
output_ptr
+=
output_width
;
...
...
mace/ops/conv_2d_test.cc
浏览文件 @
4727af0d
...
...
@@ -199,11 +199,11 @@ TEST_F(Conv2dOpTest, ConvNxNS12) {
srand
(
time
(
NULL
));
// generate random input
index_t
batch
=
1
+
rand
()
%
5
;
index_t
input_channels
=
3
+
rand
()
%
50
;
index_t
height
=
10
+
rand
()
%
100
;
index_t
width
=
10
+
rand
()
%
100
;
index_t
output_channels
=
3
+
rand
()
%
50
;
index_t
batch
=
1
+
rand
()
%
10
;
index_t
input_channels
=
1
+
rand
()
%
50
;
index_t
height
=
7
+
rand
()
%
100
;
index_t
width
=
7
+
rand
()
%
100
;
index_t
output_channels
=
1
+
rand
()
%
50
;
// Construct graph
auto
&
net
=
test_net
();
OpDefBuilder
(
"Conv2d"
,
"Conv2dTest"
)
...
...
@@ -236,12 +236,12 @@ TEST_F(Conv2dOpTest, ConvNxNS12) {
// Run NEON
net
.
RunOp
(
DeviceType
::
NEON
);
ExpectTensorNear
<
float
>
(
expected
,
*
net
.
GetOutput
(
"Output"
),
1e-
5
);
ExpectTensorNear
<
float
>
(
expected
,
*
net
.
GetOutput
(
"Output"
),
1e-
3
);
};
for
(
int
kernel_size
:
{
1
})
{
// TODO(liu1i10) 3x3
for
(
int
stride
:
{
1
,
2
})
{
for
(
int
kernel_size
:
{
3
})
{
// TODO(liu1i10) 3x3
for
(
int
stride
:
{
1
})
{
func
(
kernel_size
,
kernel_size
,
stride
,
stride
,
VALID
);
func
(
kernel_size
,
kernel_size
,
stride
,
stride
,
SAME
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录