Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
ef0b5fdc
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看板
未验证
提交
ef0b5fdc
编写于
4月 21, 2022
作者:
W
Weilong Wu
提交者:
GitHub
4月 21, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Eager] Support numpy.narray as input for eager expand (#42043) (#42064)
上级
218e759b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
27 addition
and
1 deletion
+27
-1
paddle/fluid/pybind/eager_utils.cc
paddle/fluid/pybind/eager_utils.cc
+2
-1
python/paddle/fluid/tests/unittests/test_expand_v2_op.py
python/paddle/fluid/tests/unittests/test_expand_v2_op.py
+25
-0
未找到文件。
paddle/fluid/pybind/eager_utils.cc
浏览文件 @
ef0b5fdc
...
...
@@ -1100,7 +1100,8 @@ paddle::experimental::IntArray CastPyArg2IntArray(PyObject* obj,
// obj could be: int, float, bool, paddle.Tensor
PyTypeObject
*
type
=
obj
->
ob_type
;
auto
type_name
=
std
::
string
(
type
->
tp_name
);
if
(
type_name
==
"list"
||
type_name
==
"tuple"
)
{
if
(
type_name
==
"list"
||
type_name
==
"tuple"
||
type_name
==
"numpy.ndarray"
)
{
std
::
vector
<
int
>
value
=
CastPyArg2Ints
(
obj
,
op_type
,
arg_pos
);
return
paddle
::
experimental
::
IntArray
(
value
);
...
...
python/paddle/fluid/tests/unittests/test_expand_v2_op.py
浏览文件 @
ef0b5fdc
...
...
@@ -20,6 +20,7 @@ from op_test import OpTest
import
paddle.fluid
as
fluid
from
paddle.fluid
import
compiler
,
Program
,
program_guard
import
paddle
from
paddle.fluid.framework
import
_test_eager_guard
# Situation 1: shape is a list(without tensor)
...
...
@@ -243,6 +244,30 @@ class TestExpandInferShape(unittest.TestCase):
self
.
assertListEqual
(
list
(
out
.
shape
),
[
-
1
,
-
1
,
-
1
])
# Test python Dygraph API
class
TestExpandV2DygraphAPI
(
unittest
.
TestCase
):
def
test_expand_times_is_tensor
(
self
):
with
paddle
.
fluid
.
dygraph
.
guard
():
with
_test_eager_guard
():
paddle
.
seed
(
1
)
a
=
paddle
.
rand
([
2
,
5
])
egr_expand_1
=
paddle
.
expand
(
a
,
shape
=
[
2
,
5
])
np_array
=
np
.
array
([
2
,
5
])
egr_expand_2
=
paddle
.
expand
(
a
,
shape
=
np_array
)
paddle
.
seed
(
1
)
a
=
paddle
.
rand
([
2
,
5
])
expand_1
=
paddle
.
expand
(
a
,
shape
=
[
2
,
5
])
np_array
=
np
.
array
([
2
,
5
])
expand_2
=
paddle
.
expand
(
a
,
shape
=
np_array
)
self
.
assertTrue
(
np
.
array_equal
(
egr_expand_1
.
numpy
(),
egr_expand_2
.
numpy
()))
self
.
assertTrue
(
np
.
array_equal
(
expand_1
.
numpy
(),
expand_2
.
numpy
()))
self
.
assertTrue
(
np
.
array_equal
(
expand_1
.
numpy
(),
egr_expand_1
.
numpy
()))
if
__name__
==
"__main__"
:
paddle
.
enable_static
()
unittest
.
main
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录