Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
8844462e
M
mindspore
项目概览
magicwindyyd
/
mindspore
与 Fork 源项目一致
Fork自
MindSpore / mindspore
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindspore
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
8844462e
编写于
7月 10, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
7月 10, 2020
浏览文件
操作
浏览文件
下载
差异文件
!2996 Add test case for switch_layer
Merge pull request !2996 from fanglei/add_testcase_switchlayer
上级
f1308e96
38f32d0f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
58 addition
and
3 deletion
+58
-3
mindspore/ccsrc/vm/transform.cc
mindspore/ccsrc/vm/transform.cc
+0
-2
mindspore/ccsrc/vm/vm.cc
mindspore/ccsrc/vm/vm.cc
+2
-1
tests/st/control/test_switch_layer.py
tests/st/control/test_switch_layer.py
+56
-0
未找到文件。
mindspore/ccsrc/vm/transform.cc
浏览文件 @
8844462e
...
...
@@ -199,7 +199,6 @@ bool IsSubGraph(const AnfNodePtr &node) {
}
AnfNodePtr
fn
=
inputs
[
0
];
MS_EXCEPTION_IF_NULL
(
fn
);
if
(
!
IsValueNode
<
Primitive
>
(
fn
))
{
return
false
;
}
...
...
@@ -239,7 +238,6 @@ bool CompileGraph::IsCut(const AnfNodePtr &node) {
}
AnfNodePtr
fn
=
inputs
[
0
];
MS_EXCEPTION_IF_NULL
(
fn
);
if
(
IsValueNode
<
FuncGraph
>
(
fn
))
{
auto
fg
=
GetValueNode
<
FuncGraphPtr
>
(
fn
);
if
(
fg
->
has_attr
(
FUNC_GRAPH_ATTR_GRAPH_KERNEL
))
{
...
...
mindspore/ccsrc/vm/vm.cc
浏览文件 @
8844462e
...
...
@@ -503,7 +503,8 @@ void FinalVM::InstSwitchLayer(const VectorRef &args) {
idx_value
+=
size
;
}
if
(
idx_value
<
0
||
idx_value
>=
size
)
{
MS_LOG
(
EXCEPTION
)
<<
__FUNCTION__
<<
" given index "
<<
idx_value
<<
" out of range."
;
MS_LOG
(
EXCEPTION
)
<<
__FUNCTION__
<<
" given index "
<<
idx_value
<<
" out of range. Please make sure the value "
<<
"of index in ["
<<
-
size
<<
", "
<<
size
<<
"), and the type is int32."
;
}
Push
(
branches
[
idx_value
]);
MS_LOG
(
DEBUG
)
<<
"End"
;
...
...
tests/st/control/test_switch_layer.py
0 → 100644
浏览文件 @
8844462e
# Copyright 2020 Huawei Technologies Co., Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============================================================================
import
numpy
as
np
import
pytest
import
mindspore.context
as
context
from
mindspore
import
Tensor
,
nn
from
mindspore.common
import
dtype
as
mstype
class
CaseNet
(
nn
.
Cell
):
def
__init__
(
self
):
super
(
CaseNet
,
self
).
__init__
()
self
.
conv
=
nn
.
Conv2d
(
1
,
3
,
3
)
self
.
relu
=
nn
.
ReLU
()
self
.
softmax
=
nn
.
Softmax
()
self
.
layers1
=
(
self
.
relu
,
self
.
softmax
)
self
.
layers2
=
(
self
.
conv
,
self
.
relu
)
def
construct
(
self
,
x
,
index1
,
index2
):
x
=
self
.
layers1
[
index1
](
x
)
x
=
self
.
layers2
[
index2
](
x
)
return
x
@
pytest
.
mark
.
level0
@
pytest
.
mark
.
platform_x86_gpu_training
@
pytest
.
mark
.
env_onecard
def
test_switch_layer
():
context
.
set_context
(
mode
=
context
.
GRAPH_MODE
)
net
=
CaseNet
()
data
=
Tensor
(
np
.
ones
((
1
,
1
,
224
,
224
)),
mstype
.
float32
)
idx
=
Tensor
(
0
,
mstype
.
int32
)
idx2
=
Tensor
(
-
1
,
mstype
.
int32
)
value
=
net
(
data
,
idx
,
idx2
)
relu
=
nn
.
ReLU
()
true_value
=
relu
(
data
)
ret
=
np
.
allclose
(
value
.
asnumpy
(),
true_value
.
asnumpy
())
assert
ret
idx3
=
Tensor
(
3
,
mstype
.
int32
)
with
pytest
.
raises
(
RuntimeError
):
value
=
net
(
data
,
idx3
,
idx2
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录