def get_data_iters(dataset, batch_size, num_workers=1, rank=0):
    """get dataset iterators"""
    if dataset == 'mnist':
        train_data, val_data = get_mnist_iterator(batch_size, (1, 28, 28),
                                                  num_parts=num_workers,
                                                  part_index=rank)
    elif dataset == 'cifar10':
        train_data, val_data = get_cifar10_iterator(batch_size, (3, 32, 32),
                                                    num_parts=num_workers,
                                                    part_index=rank)
    elif dataset == 'imagenet':
        if not opt.data_dir:
            raise ValueError(
                'Dir containing raw images in train/val is required for imagenet, plz specify "--data-dir"'
            )
        if model_name == 'inceptionv3':
            train_data, val_data = get_imagenet_iterator(
                opt.data_dir, batch_size, opt.num_workers, 299, opt.dtype)
        else:
            train_data, val_data = get_imagenet_iterator(
                opt.data_dir, batch_size, opt.num_workers, 224, opt.dtype)
    elif dataset == 'dummy':
        if model_name == 'inceptionv3':
            train_data, val_data = dummy_iterator(batch_size, (3, 299, 299))
        else:
            train_data, val_data = dummy_iterator(batch_size, (3, 224, 224))
    return train_data, val_data
Exemple #2
0
def get_data_iters(dataset, batch_size, num_workers=1, rank=0):
    # get dataset iterators
    if dataset == 'mnist':
        train_data, val_data = get_mnist_iterator(batch_size, (1, 28, 28),
                                                  num_parts=num_workers,
                                                  part_index=rank)
    elif dataset == 'cifar10':
        train_data, val_data = get_cifar10_iterator(batch_size, (3, 32, 32),
                                                    num_parts=num_workers,
                                                    part_index=rank)
    elif dataset == 'imagenet':
        if model_name == 'inceptionv3':
            train_data, val_data = get_imagenet_iterator(opt.train_data,
                                                         opt.val_data,
                                                         batch_size,
                                                         (3, 299, 299),
                                                         num_parts=num_workers,
                                                         part_index=rank)
        else:
            train_data, val_data = get_imagenet_iterator(opt.train_data,
                                                         opt.val_data,
                                                         batch_size,
                                                         (3, 224, 224),
                                                         num_parts=num_workers,
                                                         part_index=rank)
    elif dataset == 'dummy':
        if model_name == 'inceptionv3':
            train_data, val_data = dummy_iterator(batch_size, (3, 299, 299))
        else:
            train_data, val_data = dummy_iterator(batch_size, (3, 224, 224))
    return train_data, val_data
def get_data_iters(dataset, batch_size, opt):
    """get dataset iterators"""
    if dataset == 'mnist':
        train_data, val_data = get_mnist_iterator(batch_size, (1, 28, 28),
                                                  num_parts=kv.num_workers,
                                                  part_index=kv.rank)
    elif dataset == 'cifar10':
        train_data, val_data = get_cifar10_iterator(batch_size, (3, 32, 32),
                                                    num_parts=kv.num_workers,
                                                    part_index=kv.rank)
    elif dataset == 'imagenet':
        shape_dim = 299 if model_name == 'inceptionv3' else 224

        if not opt.data_dir:
            raise ValueError(
                'Dir containing raw images in train/val is required for imagenet.'
                'Please specify "--data-dir"')

        train_data, val_data = get_imagenet_iterator(opt.data_dir, batch_size,
                                                     opt.num_workers,
                                                     shape_dim, opt.dtype)
    elif dataset == 'caltech101':
        train_data, val_data = get_caltech101_iterator(batch_size,
                                                       opt.num_workers,
                                                       opt.dtype)
    elif dataset == 'dummy':
        shape_dim = 299 if model_name == 'inceptionv3' else 224
        train_data, val_data = dummy_iterator(batch_size,
                                              (3, shape_dim, shape_dim))
    return train_data, val_data
Exemple #4
0
def get_test_data_iter(config, kv):
    from mxnet.test_utils import get_mnist_iterator
    from filelock import FileLock
    with FileLock("data.lock"):
        iters = get_mnist_iterator(config["batch_size"], (1, 28, 28),
                                   num_parts=kv.num_workers, part_index=kv.rank)
        return iters[1]
def get_data_iters(dataset, batch_size, num_workers=1, rank=0):
    """get dataset iterators"""
    if dataset == 'mnist':
        train_data, val_data = get_mnist_iterator(batch_size, (1, 28, 28),
                                                  num_parts=num_workers, part_index=rank)
    elif dataset == 'cifar10':
        train_data, val_data = get_cifar10_iterator(batch_size, (3, 32, 32),
                                                    num_parts=num_workers, part_index=rank)
    elif dataset == 'imagenet':
        if not opt.data_dir:
            raise ValueError('Dir containing raw images in train/val is required for imagenet, plz specify "--data-dir"')
        if model_name == 'inceptionv3':
            train_data, val_data = get_imagenet_iterator(opt.data_dir, batch_size, opt.num_workers, 299, opt.dtype)
        else:
            train_data, val_data = get_imagenet_iterator(opt.data_dir, batch_size, opt.num_workers, 224, opt.dtype)
    elif dataset == 'dummy':
        if model_name == 'inceptionv3':
            train_data, val_data = dummy_iterator(batch_size, (3, 299, 299))
        else:
            train_data, val_data = dummy_iterator(batch_size, (3, 224, 224))
    return train_data, val_data
def get_data_iters(dataset, batch_size, opt):
    """get dataset iterators"""
    if dataset == 'mnist':
        train_data, val_data = get_mnist_iterator(batch_size, (1, 28, 28),
                                                  num_parts=kv.num_workers, part_index=kv.rank)
    elif dataset == 'cifar10':
        train_data, val_data = get_cifar10_iterator(batch_size, (3, 32, 32),
                                                    num_parts=kv.num_workers, part_index=kv.rank)
    elif dataset == 'imagenet':
        shape_dim = 299 if model_name == 'inceptionv3' else 224

        if not opt.data_dir:
            raise ValueError('Dir containing raw images in train/val is required for imagenet.'
                             'Please specify "--data-dir"')

        train_data, val_data = get_imagenet_iterator(opt.data_dir, batch_size,
                                                                opt.num_workers, shape_dim, opt.dtype)
    elif dataset == 'caltech101':
        train_data, val_data = get_caltech101_iterator(batch_size, opt.num_workers, opt.dtype)
    elif dataset == 'dummy':
        shape_dim = 299 if model_name == 'inceptionv3' else 224
        train_data, val_data = dummy_iterator(batch_size, (3, shape_dim, shape_dim))
    return train_data, val_data
def get_data_iters(dataset, batch_size, num_workers=1, rank=0):
    # get dataset iterators
    if dataset == 'mnist':
        train_data, val_data = get_mnist_iterator(batch_size, (1, 28, 28),
                                                  num_parts=num_workers, part_index=rank)
    elif dataset == 'cifar10':
        train_data, val_data = get_cifar10_iterator(batch_size, (3, 32, 32),
                                                    num_parts=num_workers, part_index=rank)
    elif dataset == 'imagenet':
        if model_name == 'inceptionv3':
            train_data, val_data = get_imagenet_iterator(opt.train_data, opt.val_data,
                                                         batch_size, (3, 299, 299),
                                                         num_parts=num_workers, part_index=rank)
        else:
            train_data, val_data = get_imagenet_iterator(opt.train_data, opt.val_data,
                                                         batch_size, (3, 224, 224),
                                                         num_parts=num_workers, part_index=rank)
    elif dataset == 'dummy':
        if model_name == 'inceptionv3':
            train_data, val_data = dummy_iterator(batch_size, (3, 299, 299))
        else:
            train_data, val_data = dummy_iterator(batch_size, (3, 224, 224))
    return train_data, val_data
Exemple #8
0
def get_data_iters(opt, num_workers=1, rank=0):
    """get dataset iterators"""
    if opt.dry_run:
        return None, None

    if opt.dataset == 'mnist':
        train_data, val_data = get_mnist_iterator(opt.batch_size, (1, 28, 28),
                                                  num_parts=num_workers,
                                                  part_index=rank)
    elif opt.dataset == 'cifar10':
        train_data, val_data = get_cifar10_iterator(
            opt.batch_size, (3, 32, 32),
            num_parts=num_workers,
            part_index=rank,
            dir=opt.data_path,
            aug_level=opt.augmentation_level,
            mean_subtraction=opt.mean_subtraction)
    elif opt.dataset == 'imagenet':
        if not opt.data_dir:
            raise ValueError(
                'Dir containing rec files is required for imagenet, please specify "--data-dir"'
            )
        if opt.model == 'inceptionv3':
            train_data, val_data = get_imagenet_iterator(
                opt.data_dir, opt.batch_size, opt.num_workers, 299, opt.dtype)
        else:
            train_data, val_data = get_imagenet_iterator(
                opt.data_dir, opt.batch_size, opt.num_workers, 224, opt.dtype)
    elif dataset == 'dummy':
        if opt.model == 'inceptionv3':
            train_data, val_data = dummy_iterator(opt.batch_size,
                                                  (3, 299, 299))
        else:
            train_data, val_data = dummy_iterator(opt.batch_size,
                                                  (3, 224, 224))
    return train_data, val_data
        x = F.relu(self.conv2(x))
        x = self.pool(x)
        x = self.dropout1(x)
        x = self.flatten(x)
        x = F.relu(self.dense1(x))
        x = self.dropout2(x)
        x = self.dense2(x)
        return x


mx.random.seed(42)
random.seed(42)

# get data
input_shape = (1, 28, 28)
train_data, test_data = get_mnist_iterator(input_shape=input_shape,
                                           batch_size=BATCH_SIZE)
# build nodel
model = Model()
# hybridize for speed
model.hybridize(static_alloc=True, static_shape=True)

# pin GPU
ctx = mx.gpu()

# optimizer
opt_params={'learning_rate':0.001, 'beta1':0.9, 'beta2':0.999, 'epsilon':1e-08}
opt = mx.optimizer.create('adam', **opt_params)
# initialize parameters
model.initialize(force_reinit=True, ctx=ctx)
# fetch and broadcast parameters
params = model.collect_params()
        return Softmax()

# define mlp

data = mx.symbol.Variable('data')
fc1 = mx.symbol.FullyConnected(data = data, name='fc1', num_hidden=128)
act1 = mx.symbol.Activation(data = fc1, name='relu1', act_type="relu")
fc2 = mx.symbol.FullyConnected(data = act1, name = 'fc2', num_hidden = 64)
act2 = mx.symbol.Activation(data = fc2, name='relu2', act_type="relu")
fc3 = mx.symbol.FullyConnected(data = act2, name='fc3', num_hidden=10)
#mlp = mx.symbol.Softmax(data = fc3, name = 'softmax')
mlp = mx.symbol.Custom(data=fc3, name='softmax', op_type='softmax')

# data

train, val = get_mnist_iterator(batch_size=100, input_shape = (784,))

# train

logging.basicConfig(level=logging.DEBUG)

# MXNET_CPU_WORKER_NTHREADS must be greater than 1 for custom op to work on CPU
context=mx.cpu()
# Uncomment this line to train on GPU
# context=mx.gpu(0)

mod = mx.mod.Module(mlp, context=context)

mod.fit(train_data=train, eval_data=val, optimizer='sgd',
    optimizer_params={'learning_rate':0.1, 'momentum': 0.9, 'wd': 0.00001},
    num_epoch=10, batch_end_callback=mx.callback.Speedometer(100, 100))
Exemple #11
0
def get_data_iters(config, kv):
    return get_mnist_iterator(config["batch_size"], (1, 28, 28),
                              num_parts=kv.num_workers,
                              part_index=kv.rank)
        x = F.relu(self.dense1(x))
        x = self.dropout2(x)
        x = self.dense2(x)
        return x


mx.random.seed(42)
random.seed(42)

# initialize Horovod
hvd.init()

# get data
input_shape = (1, 28, 28)
train_data, test_data = get_mnist_iterator(input_shape=input_shape,
                                           batch_size=BATCH_SIZE,
                                           num_parts=hvd.size(),
                                           part_index=hvd.rank())
# build model
model = Model()
# hybridize for speed
model.hybridize(static_alloc=True, static_shape=True)

# pin GPU to be used to process local rank
ctx = mx.gpu(hvd.local_rank())

# optimizer
opt_params = {
    'learning_rate': 0.001,
    'beta1': 0.9,
    'beta2': 0.999,
    'epsilon': 1e-08