Example #1
0
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
Example #2
0
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