Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
a83d5215
P
Paddle
项目概览
机器未来
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a83d5215
编写于
6月 27, 2017
作者:
H
hedaoyuan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add unit test for Col2ImFunctor.
上级
c7610106
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
39 addition
and
24 deletion
+39
-24
paddle/function/Im2ColTest.cpp
paddle/function/Im2ColTest.cpp
+39
-24
未找到文件。
paddle/function/Im2ColTest.cpp
浏览文件 @
a83d5215
...
...
@@ -20,7 +20,8 @@ limitations under the License. */
namespace
paddle
{
TEST
(
Im2ColFunctor
,
real
)
{
template
<
DeviceType
Device
,
class
T
>
void
TestIm2ColFunctor
()
{
for
(
size_t
channels
:
{
1
,
5
,
32
})
{
for
(
size_t
inputHeight
:
{
5
,
33
,
100
})
{
for
(
size_t
inputWidth
:
{
5
,
32
,
96
})
{
...
...
@@ -50,16 +51,18 @@ TEST(Im2ColFunctor, real) {
filterHeight
,
filterWidth
});
VectorPtr
input
=
Vector
::
create
(
imShape
.
getElements
(),
false
);
size_t
height
=
channels
*
filterHeight
*
filterWidth
;
size_t
width
=
outputHeight
*
outputWidth
;
VectorPtr
input1
=
Vector
::
create
(
imShape
.
getElements
(),
false
);
VectorPtr
input2
=
Vector
::
create
(
imShape
.
getElements
(),
false
);
MatrixPtr
output1
=
Matrix
::
create
(
height
,
width
,
false
,
false
);
MatrixPtr
output2
=
Matrix
::
create
(
width
,
height
,
false
,
false
);
Im2ColFunctor
<
kCFO
,
DEVICE_TYPE_CPU
,
real
>
im2col1
;
Im2ColFunctor
<
kOCF
,
DEVICE_TYPE_CPU
,
real
>
im2col2
;
input1
->
uniform
(
0.001
,
1
)
;
input2
->
copyFrom
(
*
input1
)
;
input
->
uniform
(
0.001
,
1
);
im2col1
(
input
->
getData
(),
Im2ColFunctor
<
kCFO
,
Device
,
T
>
im2Col1
;
Im2ColFunctor
<
kOCF
,
Device
,
T
>
im2Col2
;
im2Col1
(
input1
->
getData
(),
imShape
,
output1
->
getData
(),
colShape1
,
...
...
@@ -67,7 +70,7 @@ TEST(Im2ColFunctor, real) {
stride
,
padding
,
padding
);
im2
col2
(
input
->
getData
(),
im2
Col2
(
input2
->
getData
(),
imShape
,
output2
->
getData
(),
colShape2
,
...
...
@@ -76,27 +79,32 @@ TEST(Im2ColFunctor, real) {
padding
,
padding
);
// The transposition of the result of ColFormat == kCFO
// is equal to the result of ColFormat == kOCF.
MatrixPtr
test
;
output2
->
transpose
(
test
,
true
);
autotest
::
TensorCheckErr
(
*
output1
,
*
test
);
}
}
}
}
}
}
}
}
#if 0
TEST(Col2ImFunctor, real) {
for (size_t channels : {1, 5, 32}) {
for (size_t inputHeight : {5, 33, 100}) {
for (size_t inputWidth : {5, 32, 96}) {
for (size_t filterHeight : {1, 5}) {
for (size_t filterWidth : {3, 7}) {
for (size_t stride : {1, 2}) {
for (size_t padding : {0, 1}) {
Col2ImFunctor
<
kCFO
,
Device
,
T
>
col2Im1
;
Col2ImFunctor
<
kOCF
,
Device
,
T
>
col2Im2
;
col2Im1
(
input1
->
getData
(),
imShape
,
output1
->
getData
(),
colShape1
,
stride
,
stride
,
padding
,
padding
);
col2Im2
(
input2
->
getData
(),
imShape
,
output2
->
getData
(),
colShape2
,
stride
,
stride
,
padding
,
padding
);
autotest
::
TensorCheckErr
(
*
input1
,
*
input2
);
}
}
}
...
...
@@ -105,6 +113,13 @@ TEST(Col2ImFunctor, real) {
}
}
}
TEST
(
Im2ColFunctor
,
CPU
)
{
TestIm2ColFunctor
<
DEVICE_TYPE_CPU
,
float
>
();
}
#ifndef PADDLE_ONLY_CPU
TEST
(
Im2ColFunctor
,
GPU
)
{
TestIm2ColFunctor
<
DEVICE_TYPE_GPU
,
float
>
();
}
#endif
}
// namespace paddle
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录