Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
3ab6faa8
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看板
未验证
提交
3ab6faa8
编写于
2月 01, 2023
作者:
R
RedContritio
提交者:
GitHub
2月 01, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix div 0 error of case11: paddle.nn.functional.max_pool1d/max_pool2d/max_pool3d (#50010)
* add stride check for MaxPool * add unittests
上级
e4e94a88
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
47 addition
and
1 deletion
+47
-1
paddle/fluid/operators/pool_with_index_op.cc
paddle/fluid/operators/pool_with_index_op.cc
+5
-0
paddle/phi/kernels/funcs/pooling.h
paddle/phi/kernels/funcs/pooling.h
+5
-0
python/paddle/fluid/tests/unittests/test_pool1d_api.py
python/paddle/fluid/tests/unittests/test_pool1d_api.py
+13
-1
python/paddle/fluid/tests/unittests/test_pool2d_api.py
python/paddle/fluid/tests/unittests/test_pool2d_api.py
+12
-0
python/paddle/fluid/tests/unittests/test_pool3d_api.py
python/paddle/fluid/tests/unittests/test_pool3d_api.py
+12
-0
未找到文件。
paddle/fluid/operators/pool_with_index_op.cc
浏览文件 @
3ab6faa8
...
@@ -27,6 +27,11 @@ inline int MaxPoolOutputSize(int input_size,
...
@@ -27,6 +27,11 @@ inline int MaxPoolOutputSize(int input_size,
int
filter_size
,
int
filter_size
,
int
padding
,
int
padding
,
int
stride
)
{
int
stride
)
{
PADDLE_ENFORCE_NE
(
stride
,
0
,
phi
::
errors
::
InvalidArgument
(
"The stride of MaxPool shall not be 0, but received %d."
,
stride
));
int
output_size
=
(
input_size
-
filter_size
+
2
*
padding
)
/
stride
+
1
;
int
output_size
=
(
input_size
-
filter_size
+
2
*
padding
)
/
stride
+
1
;
return
output_size
;
return
output_size
;
}
}
...
...
paddle/phi/kernels/funcs/pooling.h
浏览文件 @
3ab6faa8
...
@@ -402,6 +402,11 @@ inline int MaxPoolOutputSize(int input_size,
...
@@ -402,6 +402,11 @@ inline int MaxPoolOutputSize(int input_size,
int
filter_size
,
int
filter_size
,
int
padding
,
int
padding
,
int
stride
)
{
int
stride
)
{
PADDLE_ENFORCE_NE
(
stride
,
0
,
phi
::
errors
::
InvalidArgument
(
"The stride of MaxPool shall not be 0, but received %d."
,
stride
));
int
output_size
=
(
input_size
-
filter_size
+
2
*
padding
)
/
stride
+
1
;
int
output_size
=
(
input_size
-
filter_size
+
2
*
padding
)
/
stride
+
1
;
return
output_size
;
return
output_size
;
}
}
...
...
python/paddle/fluid/tests/unittests/test_pool1d_api.py
浏览文件 @
3ab6faa8
...
@@ -274,7 +274,7 @@ class TestPool1D_API(unittest.TestCase):
...
@@ -274,7 +274,7 @@ class TestPool1D_API(unittest.TestCase):
self
.
check_max_dygraph_return_index_results
(
place
)
self
.
check_max_dygraph_return_index_results
(
place
)
class
TestPool
2
DError_API
(
unittest
.
TestCase
):
class
TestPool
1
DError_API
(
unittest
.
TestCase
):
def
test_error_api
(
self
):
def
test_error_api
(
self
):
def
run1
():
def
run1
():
with
fluid
.
dygraph
.
guard
():
with
fluid
.
dygraph
.
guard
():
...
@@ -417,6 +417,18 @@ class TestPool2DError_API(unittest.TestCase):
...
@@ -417,6 +417,18 @@ class TestPool2DError_API(unittest.TestCase):
self
.
assertRaises
(
ValueError
,
run_stride_out_of_range
)
self
.
assertRaises
(
ValueError
,
run_stride_out_of_range
)
def
run_zero_stride
():
with
fluid
.
dygraph
.
guard
():
array
=
np
.
array
([
1
],
dtype
=
np
.
float32
)
x
=
paddle
.
to_tensor
(
np
.
reshape
(
array
,
[
1
,
1
,
1
]),
dtype
=
'float32'
)
out
=
F
.
max_pool1d
(
x
,
1
,
stride
=
0
,
padding
=
1
,
return_mask
=
True
,
ceil_mode
=
True
)
self
.
assertRaises
(
ValueError
,
run_zero_stride
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
unittest
.
main
()
unittest
.
main
()
python/paddle/fluid/tests/unittests/test_pool2d_api.py
浏览文件 @
3ab6faa8
...
@@ -597,6 +597,18 @@ class TestPool2DError_API(unittest.TestCase):
...
@@ -597,6 +597,18 @@ class TestPool2DError_API(unittest.TestCase):
self
.
assertRaises
(
ValueError
,
run_stride_out_of_range
)
self
.
assertRaises
(
ValueError
,
run_stride_out_of_range
)
def
run_zero_stride
():
with
fluid
.
dygraph
.
guard
():
array
=
np
.
array
([
1
],
dtype
=
np
.
float32
)
x
=
paddle
.
to_tensor
(
np
.
reshape
(
array
,
[
1
,
1
,
1
,
1
]),
dtype
=
'float32'
)
out
=
max_pool2d
(
x
,
1
,
stride
=
0
,
padding
=
1
,
return_mask
=
True
,
ceil_mode
=
True
)
self
.
assertRaises
(
ValueError
,
run_zero_stride
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
unittest
.
main
()
unittest
.
main
()
python/paddle/fluid/tests/unittests/test_pool3d_api.py
浏览文件 @
3ab6faa8
...
@@ -563,6 +563,18 @@ class TestPool3DError_API(unittest.TestCase):
...
@@ -563,6 +563,18 @@ class TestPool3DError_API(unittest.TestCase):
self
.
assertRaises
(
ValueError
,
run_size_out_of_range
)
self
.
assertRaises
(
ValueError
,
run_size_out_of_range
)
def
run_zero_stride
():
with
fluid
.
dygraph
.
guard
():
array
=
np
.
array
([
1
],
dtype
=
np
.
float32
)
x
=
paddle
.
to_tensor
(
np
.
reshape
(
array
,
[
1
,
1
,
1
,
1
,
1
]),
dtype
=
'float32'
)
out
=
max_pool3d
(
x
,
1
,
stride
=
0
,
padding
=
1
,
return_mask
=
True
,
ceil_mode
=
True
)
self
.
assertRaises
(
ValueError
,
run_zero_stride
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
unittest
.
main
()
unittest
.
main
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录