Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
7872f376
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
7872f376
编写于
6月 20, 2017
作者:
H
hedaoyuan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix some compile error.
上级
8266546e
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
39 addition
and
12 deletion
+39
-12
paddle/function/ConvOp.h
paddle/function/ConvOp.h
+3
-5
paddle/function/GemmConvOp.cpp
paddle/function/GemmConvOp.cpp
+27
-3
paddle/function/NaiveConvOp.cpp
paddle/function/NaiveConvOp.cpp
+9
-4
未找到文件。
paddle/function/ConvOp.h
浏览文件 @
7872f376
...
@@ -68,12 +68,10 @@ public:
...
@@ -68,12 +68,10 @@ public:
numOutputs_
=
1
;
numOutputs_
=
1
;
}
}
virtual
void
calc
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
{}
// input can be INPUT and INPUT_GRAD
// input can be INPUT and INPUT_GRAD
// filter can be FILTER and FILTER_GRAD
// filter can be FILTER and FILTER_GRAD
// output can be OUTPUT and OUTPUT_GRAD
// output can be OUTPUT and OUTPUT_GRAD
void
check
(
const
TensorShape
&
input
,
void
check
Shape
(
const
TensorShape
&
input
,
const
TensorShape
&
filter
,
const
TensorShape
&
filter
,
const
TensorShape
&
output
)
{
const
TensorShape
&
output
)
{
// inputs and outputs arguments should be 4-dimensional.
// inputs and outputs arguments should be 4-dimensional.
...
...
paddle/function/GemmConvOp.cpp
浏览文件 @
7872f376
...
@@ -117,15 +117,23 @@ public:
...
@@ -117,15 +117,23 @@ public:
ConvFunctionBase
::
init
(
config
);
ConvFunctionBase
::
init
(
config
);
}
}
virtual
void
check
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
override
{
const
TensorShape
&
input
=
inputs
[
0
].
shape
();
const
TensorShape
&
filter
=
inputs
[
1
].
shape
();
const
TensorShape
&
output
=
outputs
[
0
].
shape
();
checkShape
(
input
,
filter
,
output
);
}
void
calc
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
override
{
void
calc
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
override
{
CHECK_EQ
(
numInputs_
,
inputs
.
size
());
CHECK_EQ
(
numInputs_
,
inputs
.
size
());
CHECK_EQ
(
numOutputs_
,
outputs
.
size
());
CHECK_EQ
(
numOutputs_
,
outputs
.
size
());
check
(
inputs
,
outputs
);
// TODO(hedaoyuan): Need to define some index macros,
// TODO(hedaoyuan): Need to define some index macros,
// to avoid useing 0 and 1.
// to avoid useing 0 and 1.
const
TensorShape
&
input
=
inputs
[
0
].
shape
();
const
TensorShape
&
input
=
inputs
[
0
].
shape
();
const
TensorShape
&
filter
=
inputs
[
1
].
shape
();
const
TensorShape
&
filter
=
inputs
[
1
].
shape
();
const
TensorShape
&
output
=
outputs
[
0
].
shape
();
const
TensorShape
&
output
=
outputs
[
0
].
shape
();
check
(
input
,
filter
,
output
);
real
beta
;
real
beta
;
if
(
outputs
[
0
].
getArgType
()
==
ADD_TO
)
{
if
(
outputs
[
0
].
getArgType
()
==
ADD_TO
)
{
...
@@ -209,16 +217,24 @@ public:
...
@@ -209,16 +217,24 @@ public:
ConvFunctionBase
::
init
(
config
);
ConvFunctionBase
::
init
(
config
);
}
}
virtual
void
check
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
override
{
const
TensorShape
&
output
=
inputs
[
0
].
shape
();
const
TensorShape
&
filter
=
inputs
[
1
].
shape
();
const
TensorShape
&
input
=
outputs
[
0
].
shape
();
checkShape
(
input
,
filter
,
output
);
}
void
calc
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
override
{
void
calc
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
override
{
CHECK_EQ
(
numInputs_
,
inputs
.
size
());
CHECK_EQ
(
numInputs_
,
inputs
.
size
());
CHECK_EQ
(
numOutputs_
,
outputs
.
size
());
CHECK_EQ
(
numOutputs_
,
outputs
.
size
());
check
(
inputs
,
outputs
);
// Since the implementation of Col2ImFunctor is ADD_TO,
// Since the implementation of Col2ImFunctor is ADD_TO,
// this function only supports ADD_TO mode.
// this function only supports ADD_TO mode.
CHECK_EQ
(
outputs
[
0
].
getArgType
(),
ADD_TO
);
CHECK_EQ
(
outputs
[
0
].
getArgType
(),
ADD_TO
);
const
TensorShape
&
output
=
inputs
[
0
].
shape
();
const
TensorShape
&
output
=
inputs
[
0
].
shape
();
const
TensorShape
&
filter
=
inputs
[
1
].
shape
();
const
TensorShape
&
filter
=
inputs
[
1
].
shape
();
const
TensorShape
&
input
=
outputs
[
0
].
shape
();
const
TensorShape
&
input
=
outputs
[
0
].
shape
();
check
(
input
,
filter
,
output
);
size_t
batchSize
=
input
[
0
];
size_t
batchSize
=
input
[
0
];
size_t
inputChannels
=
input
[
1
];
size_t
inputChannels
=
input
[
1
];
...
@@ -295,13 +311,21 @@ public:
...
@@ -295,13 +311,21 @@ public:
ConvFunctionBase
::
init
(
config
);
ConvFunctionBase
::
init
(
config
);
}
}
virtual
void
check
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
override
{
const
TensorShape
&
output
=
inputs
[
0
].
shape
();
const
TensorShape
&
input
=
inputs
[
1
].
shape
();
const
TensorShape
&
filter
=
outputs
[
0
].
shape
();
checkShape
(
input
,
filter
,
output
);
}
void
calc
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
override
{
void
calc
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
override
{
CHECK_EQ
(
numInputs_
,
inputs
.
size
());
CHECK_EQ
(
numInputs_
,
inputs
.
size
());
CHECK_EQ
(
numOutputs_
,
outputs
.
size
());
CHECK_EQ
(
numOutputs_
,
outputs
.
size
());
check
(
inputs
,
outputs
);
const
TensorShape
&
output
=
inputs
[
0
].
shape
();
const
TensorShape
&
output
=
inputs
[
0
].
shape
();
const
TensorShape
&
input
=
inputs
[
1
].
shape
();
const
TensorShape
&
input
=
inputs
[
1
].
shape
();
const
TensorShape
&
filter
=
outputs
[
0
].
shape
();
const
TensorShape
&
filter
=
outputs
[
0
].
shape
();
check
(
input
,
filter
,
output
);
real
beta
;
real
beta
;
if
(
outputs
[
0
].
getArgType
()
==
ADD_TO
)
{
if
(
outputs
[
0
].
getArgType
()
==
ADD_TO
)
{
...
...
paddle/function/NaiveConvOp.cpp
浏览文件 @
7872f376
...
@@ -90,14 +90,19 @@ public:
...
@@ -90,14 +90,19 @@ public:
ConvFunctionBase
::
init
(
config
);
ConvFunctionBase
::
init
(
config
);
}
}
void
calc
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
override
{
virtual
void
check
(
const
BufferArgs
&
inputs
,
CHECK_EQ
(
numInputs_
,
inputs
.
size
());
const
BufferArgs
&
outputs
)
override
{
CHECK_EQ
(
numOutputs_
,
outputs
.
size
());
const
TensorShape
&
input
=
inputs
[
0
].
shape
();
const
TensorShape
&
input
=
inputs
[
0
].
shape
();
const
TensorShape
&
filter
=
inputs
[
1
].
shape
();
const
TensorShape
&
filter
=
inputs
[
1
].
shape
();
const
TensorShape
&
output
=
outputs
[
0
].
shape
();
const
TensorShape
&
output
=
outputs
[
0
].
shape
();
check
(
input
,
filter
,
output
);
checkShape
(
input
,
filter
,
output
);
}
void
calc
(
const
BufferArgs
&
inputs
,
const
BufferArgs
&
outputs
)
override
{
CHECK_EQ
(
numInputs_
,
inputs
.
size
());
CHECK_EQ
(
numOutputs_
,
outputs
.
size
());
CHECK_EQ
(
outputs
[
0
].
getArgType
(),
ASSIGN_TO
);
CHECK_EQ
(
outputs
[
0
].
getArgType
(),
ASSIGN_TO
);
check
(
inputs
,
outputs
);
size_t
batchSize
=
inputs
[
0
].
shape
()[
0
];
size_t
batchSize
=
inputs
[
0
].
shape
()[
0
];
size_t
inputChannels
=
inputs
[
0
].
shape
()[
1
];
size_t
inputChannels
=
inputs
[
0
].
shape
()[
1
];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录