Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
d89a759b
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看板
未验证
提交
d89a759b
编写于
10月 19, 2021
作者:
littletomatodonkey
提交者:
GitHub
10月 19, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix replicate pad when input size is 0 (#36510)
* fix replicate pad when input size is 0 * add unit test
上级
7edcc4fb
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
20 addition
and
14 deletion
+20
-14
paddle/fluid/operators/pad3d_op.cc
paddle/fluid/operators/pad3d_op.cc
+5
-7
paddle/fluid/operators/pad3d_op.cu
paddle/fluid/operators/pad3d_op.cu
+5
-7
python/paddle/fluid/tests/unittests/test_pad3d_op.py
python/paddle/fluid/tests/unittests/test_pad3d_op.py
+10
-0
未找到文件。
paddle/fluid/operators/pad3d_op.cc
浏览文件 @
d89a759b
...
...
@@ -565,13 +565,11 @@ class Pad3dCPUKernel : public framework::OpKernel<T> {
" in reflect mode"
", but received depth(%d) and pad_right(%d)."
,
in_width
,
pads
[
1
]));
}
if
(
mode
==
"circular"
)
{
PADDLE_ENFORCE_NE
(
in_depth
*
in_height
*
in_width
,
0
,
}
else
if
(
mode
==
"circular"
||
mode
==
"replicate"
)
{
PADDLE_ENFORCE_NE
(
in_depth
*
in_height
*
in_width
,
0
,
platform
::
errors
::
InvalidArgument
(
"The input tensor size can not be 0 for circular padding mode."
));
"The input tensor size can not be 0 for circular "
"or replicate padding mode."
));
}
const
int
pad_left
=
pads
[
0
];
...
...
paddle/fluid/operators/pad3d_op.cu
浏览文件 @
d89a759b
...
...
@@ -618,13 +618,11 @@ class Pad3dCUDAKernel : public framework::OpKernel<T> {
" in reflect mode"
", but received depth(%d) and pad_right(%d)."
,
in_width
,
pads
[
1
]));
}
if
(
mode
==
"circular"
)
{
PADDLE_ENFORCE_NE
(
in_depth
*
in_height
*
in_width
,
0
,
}
else
if
(
mode
==
"circular"
||
mode
==
"replicate"
)
{
PADDLE_ENFORCE_NE
(
in_depth
*
in_height
*
in_width
,
0
,
platform
::
errors
::
InvalidArgument
(
"The input tensor size can not be 0 for circular padding mode."
));
"The input tensor size can not be 0 for circular "
"or replicate padding mode."
));
}
const
int
pad_left
=
pads
[
0
];
...
...
python/paddle/fluid/tests/unittests/test_pad3d_op.py
浏览文件 @
d89a759b
...
...
@@ -732,6 +732,15 @@ class TestPad3dOpError(unittest.TestCase):
mode
=
'circular'
,
data_format
=
"NCDHW"
)
def
test_replicate_1
():
input_shape
=
(
1
,
2
,
0
,
4
,
5
)
data
=
np
.
random
.
rand
(
*
input_shape
).
astype
(
np
.
float32
)
x
=
paddle
.
to_tensor
(
data
)
y
=
F
.
pad
(
x
,
pad
=
[
1
,
1
,
1
,
1
,
2
,
3
],
mode
=
'replicate'
,
data_format
=
"NCDHW"
)
paddle
.
disable_static
()
for
place
in
self
.
places
:
self
.
assertRaises
(
ValueError
,
test_variable
)
...
...
@@ -739,6 +748,7 @@ class TestPad3dOpError(unittest.TestCase):
self
.
assertRaises
(
Exception
,
test_reflect_2
)
self
.
assertRaises
(
Exception
,
test_reflect_3
)
self
.
assertRaises
(
Exception
,
test_circular_1
)
self
.
assertRaises
(
Exception
,
test_replicate_1
)
paddle
.
enable_static
()
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录