Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MegEngine 天元
MegEngine
提交
d1bbbcc6
MegEngine
项目概览
MegEngine 天元
/
MegEngine
大约 1 年 前同步成功
通知
399
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看板
提交
d1bbbcc6
编写于
8月 28, 2020
作者:
M
Megvii Engine Team
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs(mge/functional): add doc for copy, param pack split and concat
GitOrigin-RevId: c93bdae29015e20f4ac92d3c713771c512ac0ab6
上级
7e8f7209
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
85 addition
and
0 deletion
+85
-0
imperative/python/megengine/functional/tensor.py
imperative/python/megengine/functional/tensor.py
+61
-0
imperative/python/megengine/functional/utils.py
imperative/python/megengine/functional/utils.py
+24
-0
未找到文件。
imperative/python/megengine/functional/tensor.py
浏览文件 @
d1bbbcc6
...
...
@@ -937,6 +937,38 @@ def arange(
def
param_pack_split
(
inp
:
Tensor
,
offsets
:
List
,
shapes
:
List
)
->
Tensor
:
r
"""
Returns split Tensor to Tensor list as offsets and shapes described,
only used for parampack.
:param inp: Input tensor
:param offsets: offsets of outputs, length of 2 * n,
while n is tensor nums you want to split,
format [begin0, end0, begin1, end1].
:param shapes: tensor shapes of outputs
:return: split tensors
Examples:
.. testcode::
import numpy as np
import megengine.functional as F
from megengine import tensor
a = tensor(np.ones((10,), np.int32))
b, c = F.param_pack_split(a, [0, 1, 1, 10], [(1,), (3, 3)])
print(b.numpy())
print(c.numpy())
.. testoutput::
[1]
[[1 1 1]
[1 1 1]
[1 1 1]]
"""
op
=
builtin
.
ParamPackSplit
()
op
.
offsets
=
offsets
op
.
shapes
=
shapes
...
...
@@ -944,6 +976,35 @@ def param_pack_split(inp: Tensor, offsets: List, shapes: List) -> Tensor:
def
param_pack_concat
(
inps
:
List
,
offsets
:
Tensor
,
offsets_val
:
List
)
->
Tensor
:
r
"""
Returns concat Tensor, only used for parampack.
:param inps: Input tensors
:param offsets: offsets of inputs, length of 2 * n,
format [begin0, end0, begin1, end1].
:param offsets_val: device value of offsets
:return: split tensors
Examples:
.. testcode::
import numpy as np
import megengine.functional as F
from megengine import tensor
a = tensor(np.ones((1,), np.int32))
b = tensor(np.ones((3, 3), np.int32))
offsets = [0, 1, 1, 10]
offsets_val = tensor(offsets, np.int32)
c = F.param_pack_concat([a, b], offsets, offsets_val)
print(c.numpy())
.. testoutput::
[1 1 1 1 1 1 1 1 1 1]
"""
op
=
builtin
.
ParamPackConcat
()
op
.
offsets
=
offsets_val
return
apply
(
op
,
*
inps
,
offsets
)[
0
]
imperative/python/megengine/functional/utils.py
浏览文件 @
d1bbbcc6
...
...
@@ -77,4 +77,28 @@ def zero_grad(inp: Tensor) -> Tensor:
def
copy
(
inp
,
cn
):
r
"""
Copy tensor to another device.
:param inp: Input tensor.
:param cn: device that you copy to
Examples:
.. testcode::
import numpy as np
from megengine import tensor
import megengine.functional as F
x = tensor([1, 2, 3], np.int32)
y = F.copy(x, "xpu1")
print(y.numpy())
Outputs:
.. testoutput::
[1 2 3]
"""
return
apply
(
Copy
(
comp_node
=
cn
),
inp
)[
0
]
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录