def compile_net(net):
    context.set_context(save_graphs=True)
    optimizer = Momentum(net.trainable_params(),
                         learning_rate=0.1,
                         momentum=0.9)
    train_net = TrainOneStepCell(net, optimizer)
    train_net.set_auto_parallel()
    _executor.compile(train_net, _x, _b)
    context.reset_auto_parallel_context()
Beispiel #2
0
def test_spares_lazy_adam_compile():
    """ test sparse adam compile """
    indices = Tensor(np.array([0, 1]).astype(np.int32))
    label = Tensor(np.zeros([2, 1, 2]).astype(np.float32))
    net = NetWithSparseGatherV2()
    net.set_train()

    optimizer = LazyAdam(net.trainable_params(), learning_rate=0.1, weight_decay=0.9, loss_scale=2.0)
    train_network = TrainOneStepCell(net, optimizer)
    _executor.compile(train_network, indices, label)
def compile_net(net, shape):
    x = Tensor(np.ones(shape), dtype=ms.int32)
    y = Tensor(np.ones(shape), dtype=ms.float32)
    z = Tensor(np.ones(shape), dtype=ms.int32)
    optimizer = Adam(net.trainable_params(), learning_rate=0.1)
    train_net = TrainOneStepCell(net, optimizer)
    train_net.set_auto_parallel()
    train_net.set_train()
    _executor.compile(train_net, x, y, z)
    context.reset_auto_parallel_context()
Beispiel #4
0
def compile_net2(net):
    context.set_context(mode=context.GRAPH_MODE, save_graphs=False)
    optimizer = Momentum(net.trainable_params(),
                         learning_rate=0.1,
                         momentum=0.9)
    train_net = TrainOneStepCell(net, optimizer)
    train_net.set_auto_parallel()
    train_net.set_train()
    _executor.compile(train_net, _x2)
    context.reset_auto_parallel_context()
Beispiel #5
0
def test_exec_save_checkpoint():
    net = Net()
    loss = SoftmaxCrossEntropyWithLogits(is_grad=False, sparse=True)
    opt = Momentum(net.trainable_params(), 0.0, 0.9, 0.0001, 1024)

    loss_net = WithLossCell(net, loss)
    train_network = TrainOneStepCell(loss_net, opt)
    _exec_save_checkpoint(train_network, ckpoint_file_name="./new_ckpt.ckpt")

    load_checkpoint("new_ckpt.ckpt")
Beispiel #6
0
def test_spares_proximal_ada_grad():
    """ test sparse proximal_ada_grad """
    indices = Tensor(np.array([0, 1]).astype(np.int32))
    label = Tensor(np.zeros([2, 1, 2]).astype(np.float32))
    net = NetWithSparseGatherV2()
    net.set_train()

    optimizer = ProximalAdagrad(net.trainable_params(), weight_decay=0.9, loss_scale=1024.0)
    train_network = TrainOneStepCell(net, optimizer)
    _executor.compile(train_network, indices, label)
Beispiel #7
0
def test_spares_ftrl_compile():
    """ test sparse ftrl compile """
    indices = Tensor(np.array([0, 1]).astype(np.int32))
    label = Tensor(np.zeros([2, 1, 2]).astype(np.float32))
    net = NetWithSparseGatherV2()
    net.set_train()

    optimizer = FTRL(net.trainable_params(), loss_scale=2.0)
    train_network = TrainOneStepCell(net, optimizer)
    _executor.compile(train_network, indices, label)
def test_proximal_ada_grad():
    """ test_proximal_ada_grad """
    inputs = Tensor(np.ones([1, 64]).astype(np.float32))
    label = Tensor(np.zeros([1, 10]).astype(np.float32))
    net = Net()
    net.set_train()
    loss = nn.SoftmaxCrossEntropyWithLogits()
    optimizer = ProximalAdagrad(net.trainable_params())
    net_with_loss = WithLossCell(net, loss)
    train_network = TrainOneStepCell(net_with_loss, optimizer)
    _executor.compile(train_network, inputs, label)
Beispiel #9
0
def test_ftrl():
    """ test_ftrl """
    inputs = Tensor(np.ones([1, 64]).astype(np.float32))
    label = Tensor(np.zeros([1, 10]).astype(np.float32))
    net = Net()
    net.set_train()
    loss = nn.SoftmaxCrossEntropyWithLogits()
    optimizer = FTRL(net.trainable_params(), weight_decay=0.9, loss_scale=2.0)
    net_with_loss = WithLossCell(net, loss)
    train_network = TrainOneStepCell(net_with_loss, optimizer)
    _executor.compile(train_network, inputs, label)
Beispiel #10
0
def test_save_checkpoint_for_network():
    """ test save_checkpoint for network"""
    net = Net()
    loss = SoftmaxCrossEntropyWithLogits(sparse=True)
    opt = Momentum(net.trainable_params(), 0.0, 0.9, 0.0001, 1024)

    loss_net = WithLossCell(net, loss)
    train_network = TrainOneStepCell(loss_net, opt)
    save_checkpoint(train_network, ckpt_file_name="./new_ckpt.ckpt")

    load_checkpoint("new_ckpt.ckpt")
Beispiel #11
0
def test_lazy_adam_net():
    indices = Tensor(np.array([0, 0, 1]).astype(np.int32))
    label = Tensor(np.zeros([2, 1, 2]).astype(np.float32))
    net = NetWithSparseGatherV2()

    optimizer = LazyAdam(net.trainable_params(), learning_rate=0.1, weight_decay=0.9, loss_scale=2.0)
    optimizer.target = 'Ascend'
    train_network = TrainOneStepCell(net, optimizer)
    output = train_network(indices, label)
    np.allclose(output.asnumpy(), np.array([[[2, 2]], [[2, 2]], [[2, 2]]]))
    np.allclose(net.weight1.asnumpy(), np.array([[[0.9, 0.9]], [[0.9, 0.9]], [[1.0, 1.0]]]))
    np.allclose(net.weight2.asnumpy(), np.array([[[0.9, 0.9]], [[0.9, 0.9]], [[0.9, 0.9]]]))
def auto_parallel_compile_net(mode, dev_num, strategy1=None, strategy2=None):
    context.set_context(mode=context.GRAPH_MODE)
    context.set_auto_parallel_context(parallel_mode=mode, device_num=dev_num, enable_parallel_optimizer=True)
    inputs = Tensor(np.ones([32, 48]).astype(np.float32))
    label = Tensor(np.zeros([32, 16]).astype(np.float32))
    net = Net2(strategy1, strategy2)
    net = _VirtualDatasetCell(net)
    optimizer = Momentum(net.trainable_params(), learning_rate=0.1, momentum=0.9)
    train_network = TrainOneStepCell(net, optimizer)
    train_network.set_auto_parallel()
    _executor.compile(train_network, inputs, label)
    context.reset_auto_parallel_context()
Beispiel #13
0
def test_lamb_compile():
    """ test_Lamb_compile """
    inputs = Tensor(np.ones([1, 64]).astype(np.float32))
    label = Tensor(np.zeros([1, 10]).astype(np.float32))
    net = Net()
    net.set_train()
    loss = nn.SoftmaxCrossEntropyWithLogits()
    optimizer = Lamb(net.trainable_params(), decay_steps=10)

    net_with_loss = WithLossCell(net, loss)
    train_network = TrainOneStepCell(net_with_loss, optimizer)
    _executor.compile(train_network, inputs, label)
def test_sit_embedding_lookup_net():
    indices = Tensor(np.array([0, 1, 2]).astype(np.int32))
    label = Tensor(np.random.randn(3, 8).astype(np.float32))

    net1 = NetWithEmbeddingLookUp(vocab_size=8, embedding_size=8, target="CPU")
    loss = nn.SoftmaxCrossEntropyWithLogits(reduction="mean")
    optimizer1 = nn.Adam(params=net1.trainable_params(), learning_rate=0.1)
    optimizer1.unique = True
    train_network1 = TrainOneStepCell(WithLossCell(net1, loss), optimizer1)
    train_network1.set_train()
    out1 = train_network1(indices, label)

    net2 = NetWithEmbeddingLookUp(vocab_size=8, embedding_size=8, target="CPU")
    optimizer2 = nn.Adam(params=net2.trainable_params(), learning_rate=0.1)
    optimizer2.unique = False
    optimizer2.target = "CPU"
    train_network2 = TrainOneStepCell(WithLossCell(net2, loss), optimizer2)
    train_network2.set_train()
    out2 = train_network2(indices, label)

    assert np.allclose(out1.asnumpy(), out2.asnumpy(), 0.001, 0.001)
Beispiel #15
0
def run_allreduce(op):
    """run_allreduce"""
    context.set_context(mode=context.GRAPH_MODE)
    input_tensor = Tensor(np.array([[1.2, 2.1], [2.2, 3.2]], dtype=np.float32))
    label_tensor = Tensor(np.array([[1.2], [2.2]], dtype=np.float32))
    network = AllReduceNet(2, 1, op)
    loss_fn = nn.SoftmaxCrossEntropyWithLogits()
    optimizer = Momentum(filter(lambda x: x.requires_grad, network.get_parameters()),
                         learning_rate=0.1,
                         momentum=0.9)
    network = WithLossCell(network, loss_fn)
    network = TrainOneStepCell(network, optimizer)
    _executor.compile(network, input_tensor, label_tensor)
Beispiel #16
0
def test_lamb_compile_dynamic_lr():
    """ test_Lamb_compile """
    inputs = Tensor(np.ones([1, 64]).astype(np.float32))
    label = Tensor(np.zeros([1, 10]).astype(np.float32))
    net = Net()
    net.set_train()
    loss = nn.SoftmaxCrossEntropyWithLogits()
    warmup_decay_lr = LambLearningRate(0.01, 0.0001, 10, 20, 1.0)
    optimizer = Lamb(net.trainable_params(), warmup_decay_lr)

    net_with_loss = WithLossCell(net, loss)
    train_network = TrainOneStepCell(net_with_loss, optimizer)
    _executor.compile(train_network, inputs, label)
Beispiel #17
0
def test_adamw_compile():
    """ test_adamw_compile """
    inputs = Tensor(np.ones([1, 64]).astype(np.float32))
    label = Tensor(np.zeros([1, 10]).astype(np.float32))
    net = Net()
    net.set_train()

    loss = nn.SoftmaxCrossEntropyWithLogits()
    optimizer = AdamWeightDecay(net.trainable_params(), learning_rate=0.1)

    net_with_loss = WithLossCell(net, loss)
    train_network = TrainOneStepCell(net_with_loss, optimizer)
    _executor.compile(train_network, inputs, label)
Beispiel #18
0
def test_allswap():
    """run_allswap"""
    context.set_context(mode=context.GRAPH_MODE)
    input_tensor = Tensor(np.ones((100, 20)), dtype=mindspore.float32)
    label_tensor = Tensor(np.ones((1, 20)), dtype=mindspore.float32)
    network = AllSwapNet(100, 20, 20)
    loss_fn = nn.SoftmaxCrossEntropyWithLogits()
    optimizer = Momentum(filter(lambda x: x.requires_grad,
                                network.get_parameters()),
                         learning_rate=0.1,
                         momentum=0.9)
    network = WithLossCell(network, loss_fn)
    network = TrainOneStepCell(network, optimizer)
    _executor.compile(network, input_tensor, label_tensor)
def test_lamb_compile():
    """ test_Lamb_compile """
    context.set_auto_parallel_context(parallel_mode="data_parallel", device_num=2, enable_parallel_optimizer=True)
    inputs = Tensor(np.ones([32, 128]).astype(np.float32))
    label = Tensor(np.zeros([32, 768]).astype(np.float32))
    net = Net()
    net.set_train()
    loss = nn.SoftmaxCrossEntropyWithLogits()
    optimizer = Lamb(net.trainable_params(), learning_rate=0.1)

    net_with_loss = WithLossCell(net, loss)
    train_network = TrainOneStepCell(net_with_loss, optimizer)
    _executor.compile(train_network, inputs, label)
    context.reset_auto_parallel_context()
    def __init__(self, network, loss_fn=None, optimizer=None):
        super(AdversarialDefense, self).__init__(network)
        network = check_model('network', network, Cell)
        if loss_fn is None:
            loss_fn = SoftmaxCrossEntropyWithLogits(is_grad=False, sparse=True)

        if optimizer is None:
            optimizer = Momentum(params=network.trainable_params(),
                                 learning_rate=0.01,
                                 momentum=0.9)

        loss_net = WithLossCell(network, loss_fn)
        self._train_net = TrainOneStepCell(loss_net, optimizer)
        self._train_net.set_train()
Beispiel #21
0
def test_async_dump_net_multi_layer_mode1():
    test_name = "test_async_dump_net_multi_layer_mode1"
    json_file = os.path.join(os.getcwd(), "{}.json".format(test_name))
    device_id = context.get_context("device_id")
    dump_full_path = os.path.join("/tmp/async_dump/",
                                  "{}_{}".format(test_name, device_id))
    os.system("rm -rf {}/*".format(dump_full_path))
    os.environ["MINDSPORE_DUMP_CONFIG"] = json_file
    weight = Tensor(np.ones((1000, 2048)).astype(np.float32))
    bias = Tensor(np.ones((1000, )).astype(np.float32))
    net = ReluReduceMeanDenseRelu(weight, bias, 2048, 1000)
    criterion = SoftmaxCrossEntropyWithLogits(sparse=False)
    optimizer = Momentum(learning_rate=0.1,
                         momentum=0.1,
                         params=filter(lambda x: x.requires_grad,
                                       net.get_parameters()))
    net_with_criterion = WithLossCell(net, criterion)
    train_network = TrainOneStepCell(net_with_criterion, optimizer)
    train_network.set_train()
    inputs = Tensor(np.random.randn(32, 2048, 7, 7).astype(np.float32))
    label = Tensor(np.zeros(shape=(32, 1000)).astype(np.float32))
    net_dict = train_network(inputs, label)

    dump_path = "/tmp/async_dump/{}/device_{}/test_graph_0/0/0/".format(
        test_name, device_id)
    dump_file = os.listdir(dump_path)
    dump_file_name = ""
    for file in dump_file:
        if "SoftmaxCrossEntropyWithLogits" in file:
            dump_file_name = file
    dump_file_full_path = os.path.join(dump_path, dump_file_name)
    npy_path = os.path.join(os.getcwd(), "./{}".format(test_name))
    if os.path.exists(npy_path):
        shutil.rmtree(npy_path)
    os.mkdir(npy_path)
    tool_path = search_path('/usr/local/Ascend', 'msaccucmp.pyc')
    if tool_path:
        cmd = "python {0} convert -d {1} -out {2}".format(
            tool_path, dump_file_full_path, npy_path)
        os.system(cmd)
        npy_file_list = os.listdir(npy_path)
        dump_result = {}
        for file in npy_file_list:
            if "output.0.npy" in file:
                dump_result["output0"] = np.load(os.path.join(npy_path, file))
        for index, value in enumerate(net_dict):
            assert value.asnumpy() == dump_result["output0"][index]
    else:
        print('not find convert tools msaccucmp.pyc')
Beispiel #22
0
def train(net, data, label):
    learning_rate = 0.01
    momentum = 0.9

    optimizer = Momentum(
        filter(lambda x: x.requires_grad, net.get_parameters()), learning_rate,
        momentum)
    criterion = nn.SoftmaxCrossEntropyWithLogits(is_grad=False, sparse=True)
    net_with_criterion = WithLossCell(net, criterion)
    train_network = TrainOneStepCell(net_with_criterion,
                                     optimizer)  # optimizer
    train_network.set_train()
    res = train_network(data, label)
    print(res)
    assert res
Beispiel #23
0
def test_adamoffload_group():
    """ test_adam_group_lr_and_weight_decay """
    inputs = Tensor(np.ones([1, 64]).astype(np.float32))
    label = Tensor(np.zeros([1, 10]).astype(np.float32))
    net = Net()
    net.set_train()
    loss = nn.SoftmaxCrossEntropyWithLogits()
    net_with_loss = WithLossCell(net, loss)
    all_params = net.trainable_params()

    schedule_lr = nn.PolynomialDecayLR(0.01, 0.0001, 3, power=1.0)
    group_params = [{'params': [all_params[0]], 'lr': 0.02, 'weight_decay': 0.9},
                    {'params': [all_params[1]]}]
    optimizer = nn.AdamOffload(group_params, learning_rate=schedule_lr)
    train_network = TrainOneStepCell(net_with_loss, optimizer)
    _executor.compile(train_network, inputs, label)
Beispiel #24
0
def test_inference_phase():
    context.set_auto_parallel_context(device_num=8, global_rank=0)
    context.set_auto_parallel_context(parallel_mode="auto_parallel")
    set_cost_model_context(run_phase=1)

    net = Net(512, 128)
    predict = Tensor(np.ones([64, 512]).astype(np.float32) * 0.001)
    label = Tensor(np.ones([64, 128]).astype(np.float32))

    loss = nn.SoftmaxCrossEntropyWithLogits()
    optimizer = Momentum(params=net.trainable_params(), learning_rate=0.1, momentum=0.9)
    net_with_loss = WithLossCell(net, loss)
    train_network = TrainOneStepCell(net_with_loss, optimizer)
    train_network.set_train()

    output = train_network(predict, label)
def test_trainTensor(num_classes=10, epoch=15, batch_size=32):
    net = AlexNet(num_classes)
    lr = 0.1
    momentum = 0.9
    optimizer = Momentum(filter(lambda x: x.requires_grad, net.get_parameters()), lr, momentum, weight_decay=0.0001)
    criterion = nn.SoftmaxCrossEntropyWithLogits(sparse=True, reduction='mean')
    net_with_criterion = WithLossCell(net, criterion)
    train_network = TrainOneStepCell(net_with_criterion, optimizer)
    train_network.set_train()
    losses = []
    for i in range(0, epoch):
        data = Tensor(np.ones([batch_size, 3, 227, 227]).astype(np.float32) * 0.01)
        label = Tensor(np.ones([batch_size]).astype(np.int32))
        loss = train_network(data, label).asnumpy()
        losses.append(loss)
    assert losses[-1] < 0.01
Beispiel #26
0
def test_AdamWeightDecayDynamicLR():
    """ test_AdamWeightDecayDynamicLR """
    auto_parallel_context().set_enable_parallel_optimizer(True)
    context.set_auto_parallel_context(parallel_mode="data_parallel",
                                      device_num=2)
    inputs = Tensor(np.ones([32, 128]).astype(np.float32))
    label = Tensor(np.zeros([32, 768]).astype(np.float32))
    net = Net()
    net.set_train()
    loss = nn.SoftmaxCrossEntropyWithLogits()
    optimizer = AdamWeightDecayDynamicLR(net.trainable_params(),
                                         decay_steps=20,
                                         learning_rate=0.1)

    net_with_loss = WithLossCell(net, loss)
    train_network = TrainOneStepCell(net_with_loss, optimizer)
    _executor.compile(train_network, inputs, label)
Beispiel #27
0
def test_trainTensor(num_classes=10, epoch=8, batch_size=1):
    context.set_context(mode=context.GRAPH_MODE, device_target="GPU")
    net = resnet50(num_classes)
    lr = 0.1
    momentum = 0.9
    optimizer = Momentum(filter(lambda x: x.requires_grad, net.get_parameters()), lr, momentum)
    criterion = nn.SoftmaxCrossEntropyWithLogits(is_grad=False, sparse=True)
    net_with_criterion = WithLossCell(net, criterion)
    train_network = TrainOneStepCell(net_with_criterion, optimizer)  # optimizer
    train_network.set_train()
    losses = []
    for i in range(0, epoch):
        data = Tensor(np.ones([batch_size, 3, 224, 224]).astype(np.float32) * 0.01)
        label = Tensor(np.ones([batch_size]).astype(np.int32))
        loss = train_network(data, label)
        losses.append(loss)
    assert(losses[-1].asnumpy() < 1)
def test_data_parallel_dense():
    """test_data_parallel_dense"""
    context.set_context(mode=context.GRAPH_MODE)
    context.reset_auto_parallel_context()
    context.set_auto_parallel_context(parallel_mode=ParallelMode.DATA_PARALLEL, mirror_mean=True, device_num=8)
    inp = Tensor(np.ones([32, 128]).astype(np.float32) * 0.01)
    label = Tensor(np.zeros([32, 768]).astype(np.float32))
    net = DenseMMNet()
    loss_fn = nn.SoftmaxCrossEntropyWithLogits()

    optimizer = Momentum(filter(lambda x: x.requires_grad, net.get_parameters()),
                         learning_rate=0.1,
                         momentum=0.9)
    net = WithLossCell(net, loss_fn)
    net = TrainOneStepCell(net, optimizer)

    _executor.compile(net, inp, label)
    context.reset_auto_parallel_context()
Beispiel #29
0
def test_dense_gen_graph():
    context.set_context(mode=context.GRAPH_MODE)
    init()
    network = Net(512, 128)

    loss_fn = nn.SoftmaxCrossEntropyWithLogits()
    optimizer = Momentum(filter(lambda x: x.requires_grad, network.get_parameters()),
                         learning_rate=0.1,
                         momentum=0.9)
    network = WithLossCell(network, loss_fn)
    context.reset_auto_parallel_context()
    context.set_auto_parallel_context(parallel_mode=ParallelMode.HYBRID_PARALLEL, mirror_mean=True, device_num=8)
    network = TrainOneStepCell(network, optimizer)

    predict = Tensor(np.ones([64, 512]).astype(np.float32) * 0.01)
    label = Tensor(np.zeros([64, 32]).astype(np.float32))
    network.set_auto_parallel()
    _executor.compile(network, predict, label)
Beispiel #30
0
def test_lars():
    inputs = Tensor(np.ones([1, 64]).astype(np.float32))
    label = Tensor(np.zeros([1, 10]).astype(np.float32))
    net = Net()
    net.set_train()
    loss = nn.SoftmaxCrossEntropyWithLogits()

    lr = multisteplr(10, [2, 6])
    SGD = Momentum(net.trainable_params(), lr, 0.9)
    optimizer = LARS(SGD,
                     epsilon=1e-08,
                     hyperpara=0.02,
                     decay_filter=lambda x: 'bn' not in x.name,
                     lars_filter=lambda x: 'bn' not in x.name)

    net_with_loss = WithLossCell(net, loss)
    train_network = TrainOneStepCell(net_with_loss, optimizer)
    _executor.compile(train_network, inputs, label)