Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Crayon鑫
Paddle
提交
2143bd57
P
Paddle
项目概览
Crayon鑫
/
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看板
未验证
提交
2143bd57
编写于
2月 26, 2020
作者:
Z
zhupengyang
提交者:
GitHub
2月 26, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enhance shape check if use user_defined_grads in check_grad (#22722)
上级
fa449c88
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
11 addition
and
5 deletion
+11
-5
python/paddle/fluid/tests/unittests/op_test.py
python/paddle/fluid/tests/unittests/op_test.py
+10
-5
python/paddle/fluid/tests/unittests/white_list/check_shape_white_list.py
...luid/tests/unittests/white_list/check_shape_white_list.py
+1
-0
未找到文件。
python/paddle/fluid/tests/unittests/op_test.py
浏览文件 @
2143bd57
...
...
@@ -70,8 +70,6 @@ def get_numeric_gradient(place,
tensor_to_check
=
scope
.
find_var
(
input_to_check
).
get_tensor
()
tensor_size
=
product
(
tensor_to_check
.
shape
())
if
tensor_size
<
100
:
get_numeric_gradient
.
is_large_shape
=
False
tensor_to_check_dtype
=
tensor_to_check
.
_dtype
()
if
tensor_to_check_dtype
==
core
.
VarDesc
.
VarType
.
FP32
:
tensor_to_check_dtype
=
np
.
float32
...
...
@@ -178,14 +176,13 @@ class OpTest(unittest.TestCase):
cls
.
call_once
=
False
cls
.
dtype
=
None
cls
.
outputs
=
{}
cls
.
input_shape_is_large
=
True
np
.
random
.
seed
(
123
)
random
.
seed
(
124
)
cls
.
_use_system_allocator
=
_set_use_system_allocator
(
True
)
get_numeric_gradient
.
is_large_shape
=
True
@
classmethod
def
tearDownClass
(
cls
):
"""Restore random seeds"""
...
...
@@ -238,7 +235,7 @@ class OpTest(unittest.TestCase):
"This test of %s op needs check_grad with fp64 precision."
%
cls
.
op_type
)
if
not
get_numeric_gradient
.
is_large_shap
e
\
if
not
cls
.
input_shape_is_larg
e
\
and
cls
.
op_type
not
in
check_shape_white_list
.
NEED_TO_FIX_OP_LIST
:
raise
AssertionError
(
"Input's shape should be large than or equal to 100 for "
+
...
...
@@ -1319,6 +1316,14 @@ class OpTest(unittest.TestCase):
raise
AssertionError
(
"no_grad_set must be None, op_type is "
+
self
.
op_type
+
" Op."
)
for
input_to_check
in
inputs_to_check
:
set_input
(
self
.
scope
,
self
.
op
,
self
.
inputs
,
place
)
tensor_to_check
=
self
.
scope
.
find_var
(
input_to_check
).
get_tensor
()
tensor_size
=
six
.
moves
.
reduce
(
lambda
a
,
b
:
a
*
b
,
tensor_to_check
.
shape
(),
1
)
if
tensor_size
<
100
:
self
.
__class__
.
input_shape_is_large
=
False
if
not
type
(
output_names
)
is
list
:
output_names
=
[
output_names
]
...
...
python/paddle/fluid/tests/unittests/white_list/check_shape_white_list.py
浏览文件 @
2143bd57
...
...
@@ -30,4 +30,5 @@ NEED_TO_FIX_OP_LIST = [
'soft_relu'
,
'squared_l2_distance'
,
'tree_conv'
,
'cvm'
,
]
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录