Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
机器未来
Paddle
提交
495a9ceb
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看板
未验证
提交
495a9ceb
编写于
10月 27, 2020
作者:
W
wangchaochaohu
提交者:
GitHub
10月 27, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix the input error of size Op (#28272)
上级
6905608c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
56 addition
and
4 deletion
+56
-4
python/paddle/fluid/layers/nn.py
python/paddle/fluid/layers/nn.py
+3
-3
python/paddle/fluid/tests/unittests/test_numel_op.py
python/paddle/fluid/tests/unittests/test_numel_op.py
+1
-1
python/paddle/fluid/tests/unittests/test_size_op.py
python/paddle/fluid/tests/unittests/test_size_op.py
+52
-0
未找到文件。
python/paddle/fluid/layers/nn.py
浏览文件 @
495a9ceb
...
@@ -11363,10 +11363,10 @@ def size(input):
...
@@ -11363,10 +11363,10 @@ def size(input):
"""
"""
if in_dygraph_mode():
if in_dygraph_mode():
return core.ops.size(
x
)
return core.ops.size(
input
)
check_variable_and_dtype(
check_variable_and_dtype(
x, 'x', ['bool', 'float16', 'float32', 'float64', 'int32', 'int64']
,
input, 'input'
,
"size")
['bool', 'float16', 'float32', 'float64', 'int32', 'int64'],
"size")
helper = LayerHelper('size', **locals())
helper = LayerHelper('size', **locals())
out = helper.create_variable_for_type_inference(dtype='int64')
out = helper.create_variable_for_type_inference(dtype='int64')
helper.append_op(type='size', inputs={'Input': input}, outputs={'Out': out})
helper.append_op(type='size', inputs={'Input': input}, outputs={'Out': out})
...
...
python/paddle/fluid/tests/unittests/test_numel_op.py
浏览文件 @
495a9ceb
...
@@ -48,7 +48,7 @@ class TestNumelOp2(TestNumelOp):
...
@@ -48,7 +48,7 @@ class TestNumelOp2(TestNumelOp):
self
.
shape
=
(
0
,
)
self
.
shape
=
(
0
,
)
class
TestNumel
Oo
API
(
unittest
.
TestCase
):
class
TestNumelAPI
(
unittest
.
TestCase
):
def
test_numel_static
(
self
):
def
test_numel_static
(
self
):
main_program
=
fluid
.
Program
()
main_program
=
fluid
.
Program
()
startup_program
=
fluid
.
Program
()
startup_program
=
fluid
.
Program
()
...
...
python/paddle/fluid/tests/unittests/test_size_op.py
浏览文件 @
495a9ceb
...
@@ -14,6 +14,8 @@
...
@@ -14,6 +14,8 @@
import
unittest
import
unittest
import
numpy
as
np
import
numpy
as
np
import
paddle
import
paddle.fluid
as
fluid
from
op_test
import
OpTest
from
op_test
import
OpTest
...
@@ -53,5 +55,55 @@ class TestLargeTensor(TestSizeOp):
...
@@ -53,5 +55,55 @@ class TestLargeTensor(TestSizeOp):
self
.
shape
=
[
2
**
10
]
self
.
shape
=
[
2
**
10
]
class
TestSizeAPI
(
unittest
.
TestCase
):
def
test_size_static
(
self
):
main_program
=
fluid
.
Program
()
startup_program
=
fluid
.
Program
()
with
fluid
.
program_guard
(
main_program
,
startup_program
):
shape1
=
[
2
,
1
,
4
,
5
]
shape2
=
[
1
,
4
,
5
]
x_1
=
paddle
.
fluid
.
data
(
shape
=
shape1
,
dtype
=
'int32'
,
name
=
'x_1'
)
x_2
=
paddle
.
fluid
.
data
(
shape
=
shape2
,
dtype
=
'int32'
,
name
=
'x_2'
)
input_1
=
np
.
random
.
random
(
shape1
).
astype
(
"int32"
)
input_2
=
np
.
random
.
random
(
shape2
).
astype
(
"int32"
)
out_1
=
paddle
.
fluid
.
layers
.
size
(
x_1
)
out_2
=
paddle
.
fluid
.
layers
.
size
(
x_2
)
exe
=
paddle
.
static
.
Executor
(
place
=
paddle
.
CPUPlace
())
res_1
,
res_2
=
exe
.
run
(
feed
=
{
"x_1"
:
input_1
,
"x_2"
:
input_2
,
},
fetch_list
=
[
out_1
,
out_2
])
assert
(
np
.
array_equal
(
res_1
,
np
.
array
([
np
.
size
(
input_1
)]).
astype
(
"int64"
)))
assert
(
np
.
array_equal
(
res_2
,
np
.
array
([
np
.
size
(
input_2
)]).
astype
(
"int64"
)))
def
test_size_imperative
(
self
):
paddle
.
disable_static
(
paddle
.
CPUPlace
())
input_1
=
np
.
random
.
random
([
2
,
1
,
4
,
5
]).
astype
(
"int32"
)
input_2
=
np
.
random
.
random
([
1
,
4
,
5
]).
astype
(
"int32"
)
x_1
=
paddle
.
to_tensor
(
input_1
)
x_2
=
paddle
.
to_tensor
(
input_2
)
out_1
=
paddle
.
fluid
.
layers
.
size
(
x_1
)
out_2
=
paddle
.
fluid
.
layers
.
size
(
x_2
)
assert
(
np
.
array_equal
(
out_1
.
numpy
().
item
(
0
),
np
.
size
(
input_1
)))
assert
(
np
.
array_equal
(
out_2
.
numpy
().
item
(
0
),
np
.
size
(
input_2
)))
paddle
.
enable_static
()
def
test_error
(
self
):
main_program
=
fluid
.
Program
()
startup_program
=
fluid
.
Program
()
with
fluid
.
program_guard
(
main_program
,
startup_program
):
def
test_x_type
():
shape
=
[
1
,
4
,
5
]
input_1
=
np
.
random
.
random
(
shape
).
astype
(
"int32"
)
out_1
=
paddle
.
fluid
.
layers
.
size
(
input_1
)
self
.
assertRaises
(
TypeError
,
test_x_type
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
paddle
.
enable_static
()
unittest
.
main
()
unittest
.
main
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录