def get_model(n_features=29, n_classes=2, learning_rate=LEARNING_RATE, verbose=VERBOSE, batch_size=BATCH_SIZE, n_steps=N_STEPS, width=WIDTH, save_step=100, cuda=True, preprocessing=None, skew=None): def data_augment(X, y, W, training=True): if training: z = np.random.normal(loc=0, scale=WIDTH, size=(X.shape[0])) X = skew(X, z) if preprocessing is not None: X, y, W = preprocessing(X, y, W) return X, y, W net = Net(n_features, n_classes) model = NeuralNet(net, n_classes=n_classes, learning_rate=learning_rate, preprocessing=data_augment, verbose=verbose, batch_size=batch_size, n_steps=n_steps, width=width, save_step=save_step, cuda=cuda) model.name = 'DataAugmentNeuralNet' return model
def get_model(n_features=29, n_classes=2, learning_rate=LEARNING_RATE, verbose=VERBOSE, batch_size=BATCH_SIZE, n_steps=N_STEPS, width=WIDTH, save_step=100, cuda=True, preprocessing=None, skew=None): def data_augment(X, y, W, training=True): if training: z_list = [ np.random.normal(loc=0, scale=WIDTH, size=(X.shape[0])) for _ in range(5) ] X = np.concatenate([ X, ] + [skew(X, z) for z in z_list], axis=0) y = np.concatenate([ y, ] + [y for _ in range(5)], axis=0) if W is not None: W = np.concatenate([ W, ] + [W for _ in range(5)], axis=0) if preprocessing is not None: X, y, W = preprocessing(X, y, W) return X, y, W net = Net(n_features, n_classes) model = NeuralNet(net, n_classes=n_classes, learning_rate=learning_rate, preprocessing=data_augment, verbose=verbose, batch_size=batch_size, n_steps=n_steps, width=width, save_step=save_step, cuda=cuda) model.name = 'TrueDataAugmentNeuralNet' return model