Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
2d4c66d4
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看板
提交
2d4c66d4
编写于
8月 10, 2017
作者:
T
tensor-tang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add comments and todo lists
上级
a475a57d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
15 addition
and
9 deletion
+15
-9
paddle/gserver/layers/MKLDNNFcLayer.h
paddle/gserver/layers/MKLDNNFcLayer.h
+3
-0
paddle/gserver/tests/MKLDNNTester.cpp
paddle/gserver/tests/MKLDNNTester.cpp
+7
-5
paddle/gserver/tests/MKLDNNTester.h
paddle/gserver/tests/MKLDNNTester.h
+5
-4
未找到文件。
paddle/gserver/layers/MKLDNNFcLayer.h
浏览文件 @
2d4c66d4
...
@@ -29,7 +29,10 @@ protected:
...
@@ -29,7 +29,10 @@ protected:
// input layer size, can not be change after init
// input layer size, can not be change after init
size_t
iLayerSize_
;
// == ic * ih * iw
size_t
iLayerSize_
;
// == ic * ih * iw
// if has already init the weight
bool
hasInitedWgt_
;
bool
hasInitedWgt_
;
// if input layer has image size info (ih>1 && iw>1)
bool
hasSpatial_
;
bool
hasSpatial_
;
// fc weight and bias
// fc weight and bias
...
...
paddle/gserver/tests/MKLDNNTester.cpp
浏览文件 @
2d4c66d4
...
@@ -123,7 +123,8 @@ void MKLDNNTester::checkForward() {
...
@@ -123,7 +123,8 @@ void MKLDNNTester::checkForward() {
}
}
void
MKLDNNTester
::
checkBackwardData
()
{
void
MKLDNNTester
::
checkBackwardData
()
{
const
bool
isBN
=
dnnLayer_
->
getType
()
==
"mkldnn_batch_norm"
;
// TODO(TJ): uncomment me when batch norm ready
// const bool isBN = dnnLayer_->getType() == "mkldnn_batch_norm";
for
(
size_t
i
=
0
;
i
<
dataLayers_
[
DNN
].
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
dataLayers_
[
DNN
].
size
();
++
i
)
{
const
MatrixPtr
&
dnnDiff
=
dataLayers_
[
DNN
][
i
]
->
getOutputGrad
();
const
MatrixPtr
&
dnnDiff
=
dataLayers_
[
DNN
][
i
]
->
getOutputGrad
();
const
MatrixPtr
&
refDiff
=
dataLayers_
[
REF
][
i
]
->
getOutputGrad
();
const
MatrixPtr
&
refDiff
=
dataLayers_
[
REF
][
i
]
->
getOutputGrad
();
...
@@ -134,10 +135,11 @@ void MKLDNNTester::checkBackwardData() {
...
@@ -134,10 +135,11 @@ void MKLDNNTester::checkBackwardData() {
double
delta
=
compareMatrix
(
dnnDiff
,
refDiff
);
double
delta
=
compareMatrix
(
dnnDiff
,
refDiff
);
EXPECT_LE
(
fabs
(
delta
),
eps_
);
EXPECT_LE
(
fabs
(
delta
),
eps_
);
if
(
isBN
)
{
// TODO(TJ): uncomment me when batch norm ready
// the other two inputs in batch norm are for moving mean and var
// if (isBN) {
break
;
// // the other two inputs in batch norm are for moving mean and var
}
// break;
// }
}
}
}
}
...
...
paddle/gserver/tests/MKLDNNTester.h
浏览文件 @
2d4c66d4
...
@@ -27,9 +27,9 @@ namespace paddle {
...
@@ -27,9 +27,9 @@ namespace paddle {
*/
*/
class
MKLDNNTester
{
class
MKLDNNTester
{
enum
{
enum
{
DNN
=
0
,
DNN
=
0
,
// MKLDNN layer
REF
=
1
,
REF
=
1
,
// Reference layer
NUM
=
2
,
NUM
=
2
,
// Number of total
};
};
protected:
protected:
...
@@ -107,7 +107,8 @@ private:
...
@@ -107,7 +107,8 @@ private:
* Get delta percent
* Get delta percent
* if many(>failRate) wrong(abs(dnn-ref)/abs(ref)>thres) points return the
* if many(>failRate) wrong(abs(dnn-ref)/abs(ref)>thres) points return the
* max(diff/ref)
* max(diff/ref)
* else return sum(abs(a-b)) / sum(abs(b)) should smaller than eps
* else return sum(abs(a-b)) / sum(abs(b))
* The return value should smaller than eps when passing.
*/
*/
double
getDelta
(
const
real
*
d1
,
double
getDelta
(
const
real
*
d1
,
const
real
*
d2
,
const
real
*
d2
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录