Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MegEngine 天元
MegEngine
提交
aa626726
MegEngine
项目概览
MegEngine 天元
/
MegEngine
1 年多 前同步成功
通知
404
Star
4705
Fork
582
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
MegEngine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
aa626726
编写于
10月 10, 2020
作者:
M
Megvii Engine Team
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(mge): make F.eye numpy compatible
GitOrigin-RevId: fee32537b4cb0b3a514ac9cf0e407b7a463aca4e
上级
7589bce4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
5 deletion
+21
-5
imperative/python/megengine/functional/tensor.py
imperative/python/megengine/functional/tensor.py
+12
-4
imperative/python/test/unit/functional/test_tensor.py
imperative/python/test/unit/functional/test_tensor.py
+9
-1
未找到文件。
imperative/python/megengine/functional/tensor.py
浏览文件 @
aa626726
...
...
@@ -57,7 +57,7 @@ __all__ = [
]
def
eye
(
shap
e
,
*
,
dtype
=
"float32"
,
device
:
Optional
[
CompNode
]
=
None
)
->
Tensor
:
def
eye
(
N
,
M
=
Non
e
,
*
,
dtype
=
"float32"
,
device
:
Optional
[
CompNode
]
=
None
)
->
Tensor
:
"""Returns a 2D tensor with ones on the diagonal and zeros elsewhere.
:param shape: expected shape of output tensor.
...
...
@@ -72,8 +72,7 @@ def eye(shape, *, dtype="float32", device: Optional[CompNode] = None) -> Tensor:
import numpy as np
import megengine.functional as F
data_shape = (4, 6)
out = F.eye(data_shape, dtype=np.float32)
out = F.eye(4, 6, dtype=np.float32)
print(out.numpy())
Outputs:
...
...
@@ -86,8 +85,17 @@ def eye(shape, *, dtype="float32", device: Optional[CompNode] = None) -> Tensor:
[0. 0. 0. 1. 0. 0.]]
"""
if
M
is
not
None
:
if
isinstance
(
N
,
Tensor
)
or
isinstance
(
M
,
Tensor
):
shape
=
astensor1d
((
N
,
M
))
else
:
shape
=
Tensor
([
N
,
M
],
dtype
=
"int32"
,
device
=
device
)
elif
isinstance
(
N
,
Tensor
):
shape
=
N
else
:
shape
=
Tensor
(
N
,
dtype
=
"int32"
,
device
=
device
)
op
=
builtin
.
Eye
(
k
=
0
,
dtype
=
dtype
,
comp_node
=
device
)
(
result
,)
=
apply
(
op
,
Tensor
(
shape
,
dtype
=
"int32"
,
device
=
device
)
)
(
result
,)
=
apply
(
op
,
shape
)
return
result
...
...
imperative/python/test/unit/functional/test_tensor.py
浏览文件 @
aa626726
...
...
@@ -22,12 +22,20 @@ from megengine.distributed.helper import get_device_count_by_fork
def
test_eye
():
dtype
=
np
.
float32
cases
=
[{
"input"
:
[
10
,
20
]},
{
"input"
:
[
20
,
30
]}]
cases
=
[{
"input"
:
[
10
,
20
]},
{
"input"
:
[
30
]}]
for
case
in
cases
:
np
.
testing
.
assert_allclose
(
F
.
eye
(
case
[
"input"
],
dtype
=
dtype
).
numpy
(),
np
.
eye
(
*
case
[
"input"
]).
astype
(
dtype
),
)
np
.
testing
.
assert_allclose
(
F
.
eye
(
*
case
[
"input"
],
dtype
=
dtype
).
numpy
(),
np
.
eye
(
*
case
[
"input"
]).
astype
(
dtype
),
)
np
.
testing
.
assert_allclose
(
F
.
eye
(
tensor
(
case
[
"input"
]),
dtype
=
dtype
).
numpy
(),
np
.
eye
(
*
case
[
"input"
]).
astype
(
dtype
),
)
def
test_concat
():
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录