Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MegEngine 天元
MegEngine
提交
8d2bbf73
MegEngine
项目概览
MegEngine 天元
/
MegEngine
接近 2 年 前同步成功
通知
414
Star
4708
Fork
583
代码
文件
提交
分支
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看板
提交
8d2bbf73
编写于
3月 27, 2020
作者:
M
Megvii Engine Team
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(mge/functional): support scalar inputs in elemwise functions
GitOrigin-RevId: 7bce561ee1a48bfba744bde2c88939a0a3ffeabd
上级
ea00b57d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
48 addition
and
1 deletion
+48
-1
python_module/megengine/functional/elemwise.py
python_module/megengine/functional/elemwise.py
+8
-1
python_module/test/unit/functional/test_elemwise.py
python_module/test/unit/functional/test_elemwise.py
+40
-0
未找到文件。
python_module/megengine/functional/elemwise.py
浏览文件 @
8d2bbf73
...
...
@@ -11,6 +11,7 @@ import functools
import
megengine._internal
as
mgb
from
..core.graph
import
_use_default_if_none
from
..core.tensor
import
Tensor
,
wrap_io_tensor
__all__
=
[
...
...
@@ -45,11 +46,17 @@ __all__ = [
def
_elemwise
(
mode
):
# DONT export
"""Decorator helps to wrap megbrain element-wise oprs"""
def
elemwise_decorator
(
func
):
@
functools
.
wraps
(
func
)
@
wrap_io_tensor
def
elemwise_func
(
*
inputs
)
->
Tensor
:
if
all
(
isinstance
(
i
,
(
int
,
float
))
for
i
in
inputs
):
device
,
comp_graph
=
_use_default_if_none
(
None
,
None
)
ret
=
mgb
.
opr
.
elemwise
(
*
inputs
,
mode
=
mode
,
comp_node
=
device
,
comp_graph
=
comp_graph
)
return
ret
.
inferred_value
[
0
]
return
mgb
.
opr
.
elemwise
(
*
inputs
,
mode
=
mode
)
return
elemwise_func
...
...
python_module/test/unit/functional/test_elemwise.py
0 → 100644
浏览文件 @
8d2bbf73
# -*- coding: utf-8 -*-
# MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
#
# Copyright (c) 2014-2020 Megvii Inc. All rights reserved.
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
import
numpy
as
np
import
megengine.functional
as
F
from
megengine
import
tensor
from
megengine.test
import
assertTensorClose
def
test_abs
():
assertTensorClose
(
F
.
abs
(
tensor
([
-
3.
,
-
4.
,
-
5.
])).
numpy
(),
np
.
abs
(
np
.
array
([
-
3.
,
-
4.
,
-
5.
],
dtype
=
np
.
float32
)))
assertTensorClose
(
F
.
abs
(
-
3.
),
np
.
abs
(
np
.
float32
(
-
3.
)))
def
test_multiply
():
assertTensorClose
(
F
.
multiply
(
-
3.
,
-
4.
),
np
.
multiply
(
np
.
float32
(
-
3.
),
np
.
float32
(
-
4.
)))
assertTensorClose
(
F
.
multiply
(
tensor
([
3.
,
4.
]),
4.
).
numpy
(),
np
.
multiply
(
np
.
array
([
3.
,
4.
],
dtype
=
np
.
float32
),
4.
))
assertTensorClose
(
F
.
multiply
(
4.
,
tensor
([
3.
,
4.
])).
numpy
(),
np
.
multiply
(
4.
,
np
.
array
([
3.
,
4.
],
dtype
=
np
.
float32
)))
assertTensorClose
(
F
.
multiply
(
tensor
([
3.
,
4.
]),
tensor
([
3.
,
4.
])).
numpy
(),
np
.
multiply
(
np
.
array
([
3.
,
4.
],
dtype
=
np
.
float32
),
np
.
array
([
3.
,
4.
],
dtype
=
np
.
float32
)))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录