예제 #1
0
                        device_target=args_opt.device_target)
    context.set_context(device_id=args_opt.device_id)

    device_num = int(os.environ.get("DEVICE_NUM", 1))
    if device_num > 1:
        context.reset_auto_parallel_context()
        context.set_auto_parallel_context(
            device_num=device_num,
            parallel_mode=ParallelMode.DATA_PARALLEL,
            mirror_mean=True)
        init()

    dataset = create_dataset(args_opt.data_path, cfg.epoch_size)
    batch_num = dataset.get_dataset_size()

    net = vgg16(num_classes=cfg.num_classes)
    lr = lr_steps(0,
                  lr_max=cfg.lr_init,
                  total_epochs=cfg.epoch_size,
                  steps_per_epoch=batch_num)
    opt = Momentum(filter(lambda x: x.requires_grad, net.get_parameters()),
                   Tensor(lr),
                   cfg.momentum,
                   weight_decay=cfg.weight_decay)
    loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True,
                                            reduction='mean',
                                            is_grad=False)
    model = Model(net,
                  loss_fn=loss,
                  optimizer=opt,
                  metrics={'acc'},
예제 #2
0
    parser.add_argument('--data_path',
                        type=str,
                        default='./cifar',
                        help='path where the dataset is saved')
    parser.add_argument('--device_id',
                        type=int,
                        default=None,
                        help='device id of GPU or Ascend. (Default: None)')
    args_opt = parser.parse_args()

    context.set_context(mode=context.GRAPH_MODE,
                        device_target=args_opt.device_target)
    context.set_context(device_id=args_opt.device_id)
    context.set_context(enable_mem_reuse=True, enable_hccl=False)

    net = vgg16(batch_size=cfg.batch_size, num_classes=cfg.num_classes)
    lr = lr_steps(0,
                  lr_max=cfg.lr_init,
                  total_epochs=cfg.epoch_size,
                  steps_per_epoch=50000 // cfg.batch_size)
    opt = Momentum(filter(lambda x: x.requires_grad, net.get_parameters()),
                   Tensor(lr),
                   cfg.momentum,
                   weight_decay=cfg.weight_decay)
    loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True,
                                            reduction='mean',
                                            is_grad=False)
    model = Model(net, loss_fn=loss, optimizer=opt, metrics={'acc'})

    dataset = dataset.create_dataset(args_opt.data_path, cfg.epoch_size)
    batch_num = dataset.get_dataset_size()
예제 #3
0
def test_vgg16():
    inputs = Tensor(np.random.rand(1, 3, 112, 112).astype(np.float32))
    net = vgg16()
    with pytest.raises(ValueError):
        print(net.construct(inputs))