|
- import numpy as np
-
- import mindspore.nn as nn
- from mindspore import context
- from mindspore.common.parameter import Parameter
- from mindspore.common.tensor import Tensor
- import mindspore.ops as ops
- import mindspore
-
- context.set_context(mode=context.GRAPH_MODE)
-
-
- class TestNoReturn(nn.Cell):
- def __init__(self):
- super(TestNoReturn, self).__init__()
- self.m = 1
-
- def construct(self, x, y):
- and_v = x * y
- and_v += 1
- # return and_v
-
-
- def test_no_return():
- net = TestNoReturn()
- x = Tensor(np.ones([2, 2], np.float))
- y = Tensor(np.zeros([2, 2], np.float))
- ret = net(x, y)
- print(ret)
-
-
- class TestSuper(nn.Cell):
- def __init__(self):
- super().__init__()
- self.m = 1
-
- def construct(self, x, y):
- super(TestSuper, 2, 3).aa()
- and_v = x * y
- return and_v
-
-
- def test_super():
- net = TestSuper()
- x = Tensor(np.ones([2, 2], np.float))
- y = Tensor(np.zeros([2, 2], np.float))
- ret = net(x, y)
- print(ret)
-
-
- class TestCompare(nn.Cell):
- def __init__(self):
- super(TestCompare, self).__init__()
- self.m = 1
-
- def construct(self, x, y):
- return x > y > 10
-
-
- def test_compare():
- net = TestCompare()
- x = Tensor(np.ones([2, 2], np.float))
- y = Tensor(np.zeros([2, 2], np.float))
- ret = net(x, y)
- print(ret)
-
-
- class TestUndefMemberChange(nn.Cell):
- def __init__(self):
- super(TestUndefMemberChange, self).__init__()
- self.m = 1
-
- def construct(self, x, y):
- self.t = x
- return x > y
-
-
- def test_undef_member_changer():
- net = TestUndefMemberChange()
- x = Tensor(np.ones([2, 2], np.float))
- y = Tensor(np.zeros([2, 2], np.float))
- ret = net(x, y)
- print(ret)
-
-
- class TestMemberChange(nn.Cell):
- def __init__(self):
- super(TestMemberChange, self).__init__()
- self.t = Tensor(np.zeros([2, 2], np.float))
-
- def construct(self, x, y):
- self.t = x
- return x > y
-
-
- def test_member_changer():
- net = TestMemberChange()
- x = Tensor(np.ones([2, 2], np.float))
- y = Tensor(np.zeros([2, 2], np.float))
- ret = net(x, y)
- print(ret)
-
-
- class TestUnsupportSTMT(nn.Cell):
- def __init__(self):
- super(TestUnsupportSTMT, self).__init__()
- self.m = 1
-
- def construct(self, x, y):
- try:
- val = x + y
- finally:
- val = x
- return val
-
-
- def test_UnsupportSTMT():
- net = TestUnsupportSTMT()
- x = Tensor(np.ones([2, 2], np.float))
- y = Tensor(np.zeros([2, 2], np.float))
- ret = net(x, y)
- print(ret)
-
-
- class TestUnsupportNum(nn.Cell):
- def __init__(self):
- super(TestUnsupportNum, self).__init__()
- self.m = 1
-
- def construct(self, x, y):
- a = x + 3.14j
- return a
-
-
- def test_UnsupportNum():
- net = TestUnsupportNum()
- x = Tensor(np.ones([2, 2], np.float))
- y = Tensor(np.zeros([2, 2], np.float))
- ret = net(x, y)
- print(ret)
-
-
- class TestAssignAdd(nn.Cell):
- def __init__(self):
- super(TestAssignAdd, self).__init__()
- self.m = 1
-
- def construct(self, x, y):
- x.id_ += y
- # x[1] += y
- return x
-
-
- def test_AssignAdd():
- net = TestAssignAdd()
- ret = net([3, 1], 2)
- print(ret)
-
-
- class TestParseListComp(nn.Cell):
- def __init__(self):
- super(TestParseListComp, self).__init__()
- self.m = 1
-
- def construct(self, x, y):
- ret = [m + y for l in x for m in l]
- return ret
-
-
- def test_ParseListComp():
- net = TestParseListComp()
-
- ret = net([[1, 2], [3, 4]], 2)
- print(ret)
-
-
- class TestAssign(nn.Cell):
- def __init__(self):
- super(TestAssign, self).__init__()
- self.m = 1
-
- def construct(self, x, y):
- x.id_ = y
- return x
-
-
- def test_Assign():
- net = TestAssign()
- ret = net([3, 1], 2)
- print(ret)
-
-
- class TestAssignList(nn.Cell):
- def __init__(self):
- super(TestAssignList, self).__init__()
- self.m = 1
-
- def construct(self, x, y):
- [m, n] = [x, y]
- return m, n
-
-
- def test_AssignList():
- net = TestAssignList()
- ret = net([3, 1], 2)
- print(ret)
-
-
- class TestParaDef(nn.Cell):
- def __init__(self):
- super(TestParaDef, self).__init__()
- self.m = 1
-
- def construct(self, x=1, y=1):
- ret = x + y
- return ret
-
-
- def test_para_def():
- net = TestParaDef()
- ret = net(1, 2)
- print(ret)
-
-
- class TestParameterNameNone(nn.Cell):
- def __init__(self):
- super(TestParameterNameNone, self).__init__()
- self.matmul = ops.MatMul()
- # self.weight = Parameter(Tensor(np.ones((1, 2)), mindspore.float32), name="w", requires_grad=True)
- self.weight = Parameter(Tensor(np.ones((1, 2)), mindspore.float32), name=None, requires_grad=True)
-
- def construct(self, x):
- out = self.matmul(self.weight, x)
- return out
-
-
- def test_parameter_name_none():
- net = TestParameterNameNone()
- x = Tensor(np.ones((2, 1)), mindspore.float32)
- print(net(x))
-
-
- class TestBranchReturn(nn.Cell):
- def __init__(self):
- super(TestBranchReturn, self).__init__()
- self.m = 1
-
- def construct(self, x):
- if x > 0:
- return x + 1
-
- return x
-
-
- def test_branch_return():
- net = TestBranchReturn()
- print(net(1))
-
-
- class TestSliceNotInt(nn.Cell):
- def __init__(self):
- super(TestSliceNotInt, self).__init__()
- self.m = 1
-
- def construct(self, x):
- s = "ABCDEFGHIJKL"
- sl = slice(x, 4.5)
- return s[sl]
-
-
- def test_slice_not_int():
- net = TestSliceNotInt()
- print(net(1))
-
-
- class TestSliceNotIntDefInInit(nn.Cell):
- def __init__(self):
- super(TestSliceNotIntDefInInit, self).__init__()
- self.sl = slice(1, 4.5)
-
- def construct(self, x):
- s = "ABCDEFGHIJKL"
- return s[self.sl]
-
-
- def test_slice_not_int_def_in_init():
- net = TestSliceNotIntDefInInit()
- print(net(1))
-
-
- class MatMulCell(nn.Cell):
- def __init__(self):
- super().__init__()
- self.m = 1
-
- def construct(self, x):
- return x
-
-
- class TestCellPipelineStage(nn.Cell):
- def __init__(self, strategy1, strategy2, param=None):
- super().__init__()
- self.block = nn.CellList()
- cell = MatMulCell()
- cell.pipeline_stage = -1
- self.block.append(cell)
- cell = MatMulCell()
- cell.pipeline_stage = -1
- self.block.append(cell)
-
- def construct(self, x):
- for i in range(2):
- x = self.block[i](x)
- return x
-
-
- def test_cell_pipeline_state():
- strategy1 = Tensor((4, 1), mindspore.int64)
- strategy2 = Tensor((2, 1), mindspore.int64)
- net = TestCellPipelineStage(strategy1, strategy2)
- print(net(1))
-
-
- class TestArgsKwArgs(nn.Cell):
- def __init__(self):
- super(TestArgsKwArgs, self).__init__()
- self.m = 1
-
- def construct(self, *args, **kwargs):
- x = 0
- for v in args:
- x += v
-
- # for k, v in kwargs.items():
- # x += v
- return x
-
-
- def test_args_kwargs():
- net = TestArgsKwArgs()
- print(net(1, 2, 3, 4, k1=5, k2=6))
-
-
- class TestArgs(nn.Cell):
- def __init__(self):
- super(TestArgs, self).__init__()
- self.m = 1
-
- def construct(self, x, *args):
- for v in args:
- x += v
-
- return x
-
-
- def test_args():
- net = TestArgs()
- print(net(1, 2, 3, 4))
-
-
- class TestNoDef(nn.Cell):
- def __init__(self):
- super().__init__()
- self.m = 1
-
- def construct(self, x):
- x += self.y
- return x
-
-
- def test_no_def():
- net = TestNoDef()
- print(net(1))
|