Esempio n. 1
0
        lr = Tensor(
            get_lr(global_step=cfg.global_step,
                   lr_init=cfg.lr_init,
                   lr_end=cfg.lr_end,
                   lr_max=cfg.lr_max,
                   warmup_epochs=cfg.warmup_epochs,
                   total_epochs=cfg.num_epochs,
                   steps_per_epoch=ds_train.get_dataset_size(),
                   lr_adjust_epoch=cfg.lr_adjust_epoch))
    else:
        lr = cfg.learning_rate

    opt = nn.Momentum(network.trainable_params(), lr, cfg.momentum)
    loss_cb = LossMonitor()

    model = Model(network, loss, opt, {'acc': Accuracy()})

    print("============== Starting Training ==============")
    config_ck = CheckpointConfig(
        save_checkpoint_steps=cfg.save_checkpoint_steps,
        keep_checkpoint_max=cfg.keep_checkpoint_max)
    ckpoint_cb = ModelCheckpoint(prefix="lstm",
                                 directory=args.ckpt_path,
                                 config=config_ck)
    time_cb = TimeMonitor(data_size=ds_train.get_dataset_size())
    if args.device_target == "CPU":
        model.train(cfg.num_epochs,
                    ds_train,
                    callbacks=[time_cb, ckpoint_cb, loss_cb],
                    dataset_sink_mode=False)
    else:
Esempio n. 2
0
    # set args, train it
    context.set_context(mode=context.GRAPH_MODE, device_target="CPU")
    train_data_path = "./datasets/MNIST_Data/train"
    eval_data_path = "./datasets/MNIST_Data/test"
    ckpt_save_dir = "./lenet_ckpt"
    epoch_size = 10
    eval_per_epoch = 2
    repeat = 1
    train_data = create_dataset(train_data_path, repeat_size=repeat)
    eval_data = create_dataset(eval_data_path, repeat_size=repeat)
    # define the net
    network = LeNet5()
    # define the loss function
    net_loss = SoftmaxCrossEntropyWithLogits(sparse=True, reduction='mean')
    # define the optimizer
    net_opt = nn.Momentum(network.trainable_params(),
                          learning_rate=0.01,
                          momentum=0.9)
    config_ck = CheckpointConfig(save_checkpoint_steps=eval_per_epoch * 1875,
                                 keep_checkpoint_max=15)
    ckpoint_cb = ModelCheckpoint(prefix="checkpoint_lenet",
                                 directory=ckpt_save_dir,
                                 config=config_ck)
    model = Model(network, net_loss, net_opt, metrics={"Accuracy": Accuracy()})
    epoch_per_eval = {"epoch": [], "acc": []}
    eval_cb = EvalCallBack(model, eval_data, eval_per_epoch, epoch_per_eval)
    model.train(epoch_size,
                train_data,
                callbacks=[ckpoint_cb, LossMonitor(375), eval_cb],
                dataset_sink_mode=False)
Esempio n. 3
0
    network = SentimentNet(vocab_size=embedding_table.shape[0],
                           embed_size=cfg.embed_size,
                           num_hiddens=cfg.num_hiddens,
                           num_layers=cfg.num_layers,
                           bidirectional=cfg.bidirectional,
                           num_classes=cfg.num_classes,
                           weight=Tensor(embedding_table),
                           batch_size=cfg.batch_size)

    loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True, reduction='mean')
    ds_eval = lstm_create_dataset(args.preprocess_path,
                                  cfg.batch_size,
                                  training=False)

    model = Model(network,
                  loss,
                  metrics={
                      'acc': Accuracy(),
                      'recall': Recall(),
                      'f1': F1()
                  })

    print("============== Starting Testing ==============")
    param_dict = load_checkpoint(args.ckpt_path)
    load_param_into_net(network, param_dict)
    if args.device_target == "CPU":
        acc = model.eval(ds_eval, dataset_sink_mode=False)
    else:
        acc = model.eval(ds_eval)
    print("============== {} ==============".format(acc))
Esempio n. 4
0
    parser.add_argument('--ckpt_path', type=str, default="./ckpt", help='if mode is test, must provide\
                        path where the trained ckpt file')
    parser.add_argument('--dataset_sink_mode', type=ast.literal_eval, default=True,
                        help='dataset_sink_mode is False or True')

    args = parser.parse_args()

    context.set_context(mode=context.GRAPH_MODE, device_target=args.device_target)

    network = AlexNet(cfg.num_classes)
    loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True, reduction="mean")
    repeat_size = 1
    # when batch_size=32, steps is 1562
    lr = Tensor(get_lr(0, cfg.learning_rate, cfg.epoch_size, 1562))
    opt = nn.Momentum(network.trainable_params(), lr, cfg.momentum)
    model = Model(network, loss, opt, metrics={"Accuracy": Accuracy()})  # test

    if args.mode == 'train':
        print("============== Starting Training ==============")
        ds_train = create_dataset(args.data_path,
                                  cfg.batch_size,
                                  repeat_size,
                                  args.mode)
        config_ck = CheckpointConfig(save_checkpoint_steps=cfg.save_checkpoint_steps,
                                     keep_checkpoint_max=cfg.keep_checkpoint_max)
        ckpoint_cb = ModelCheckpoint(prefix="checkpoint_alexnet", directory=args.ckpt_path, config=config_ck)
        model.train(cfg.epoch_size, ds_train, callbacks=[ckpoint_cb, LossMonitor()],
                    dataset_sink_mode=args.dataset_sink_mode)
    elif args.mode == 'test':
        print("============== Starting Testing ==============")
        param_dict = load_checkpoint(args.ckpt_path)
Esempio n. 5
0
        self.fc2 = nn.Dense(hidden_size, 1)
        self.sig = ops.Sigmoid()

    def construct(self, x):
        x = self.fc1(x)
        x = self.sig(x)
        x = self.fc2(x)
        return x


m = Net(HIDDEN_SIZE)
optim = nn.Momentum(m.trainable_params(), 0.05, 0.9)

loss = nn.MSELoss()

loss_cb = LossMonitor()

model = Model(m, loss, optim, {'acc': Accuracy()})

time_cb = TimeMonitor(data_size=ds_train.get_dataset_size())

model.train(ITERATIONS,
            ds_train,
            callbacks=[time_cb, loss_cb],
            dataset_sink_mode=False)

print("TF", model.predict(Tensor([[1, 0]], mindspore.float32)).asnumpy())
print("FF", model.predict(Tensor([[0, 0]], mindspore.float32)).asnumpy())
print("TT", model.predict(Tensor([[1, 1]], mindspore.float32)).asnumpy())
print("FT", model.predict(Tensor([[0, 1]], mindspore.float32)).asnumpy())