def main(): # Create model. model = TwoLayerNet() # Create data iterators for training and testing sets. data = get_CIFAR10_data('cifar-10-batches-py') train_dataiter = NDArrayIter(data=data['X_train'], label=data['y_train'], batch_size=batch_size, shuffle=True) test_dataiter = NDArrayIter(data=data['X_test'], label=data['y_test'], batch_size=batch_size, shuffle=False) # Create solver. solver = Solver(model, train_dataiter, test_dataiter, num_epochs=5, init_rule='gaussian', init_config={ 'stdvar': 0.001 }, update_rule='sgd_momentum', optim_config={ 'learning_rate': 1e-4, 'momentum': 0.9 }, verbose=True, print_every=20) solver.init() solver.train() train_acc = solver.check_accuracy( train_dataiter, num_samples=solver.train_acc_num_samples) # a bug-free mlp should reach around 60% train acc assert (train_acc >= 0.45)
def main(): # Create model. model = ConvolutionNet() # Create data iterators for training and testing sets. data = get_CIFAR10_data('cifar-10-batches-py') train_dataiter = NDArrayIter(data=data['X_train'], label=data['y_train'], batch_size=batch_size, shuffle=True) test_dataiter = NDArrayIter(data=data['X_test'], label=data['y_test'], batch_size=batch_size, shuffle=False) # Create solver. solver = Solver(model, train_dataiter, test_dataiter, num_epochs=1, init_rule='gaussian', init_config={ 'stdvar': 0.001 }, update_rule='sgd_momentum', optim_config={ 'learning_rate': 1e-3, 'momentum': 0.9 }, verbose=True, print_every=20) # Initialize model parameters. solver.init() # Train! solver.train() train_acc = solver.check_accuracy( train_dataiter, num_samples=solver.train_acc_num_samples) # a normal cnn should reach 50% train acc assert (train_acc >= 0.40)
def main(): # Create model. model = ConvolutionNet() # Create data iterators for training and testing sets. data = get_CIFAR10_data('cifar-10-batches-py') train_dataiter = NDArrayIter(data=data['X_train'], label=data['y_train'], batch_size=batch_size, shuffle=True) test_dataiter = NDArrayIter(data=data['X_test'], label=data['y_test'], batch_size=batch_size, shuffle=False) # Create solver. solver = Solver(model, train_dataiter, test_dataiter, num_epochs=1, init_rule='gaussian', init_config={'stdvar': 0.001}, update_rule='sgd_momentum', optim_config={ 'learning_rate': 1e-3, 'momentum': 0.9 }, verbose=True, print_every=20) # Initialize model parameters. solver.init() # Train! solver.train() train_acc = solver.check_accuracy( train_dataiter, num_samples=solver.train_acc_num_samples) # a normal cnn should reach 50% train acc assert (train_acc >= 0.40)