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, 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
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(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))
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