Exemple #1
0
    plt.rcParams['image.interpolation'] = 'nearest'
    plt.rcParams['image.cmap'] = 'gray'

    # load image dataset: blue/red dots in circles
    train_x, train_y, test_x, test_y = load_2D_dataset()

    m_train = train_x.shape[1]
    m_test = test_x.shape[1]
    n = train_x.shape[0]

    # Model
    models = [default_model(n), l2reg_model(n), dropout_model(n)]

    for model in models:
        # Train
        train_x = train_x.astype("float32")
        start_time = time.time()
        model.train(train_x, train_y, epochs=30_000)

        # Predict
        train_predictions = model.predict(train_x)
        train_accuracy = m.accuracy(train_predictions, train_y)
        print(f"Train accuracy = {train_accuracy}%")

        test_predictions = model.predict(test_x)
        test_accuracy = m.accuracy(test_predictions, test_y)
        print(f"Test accuracy = {test_accuracy}%")

        # Plot
        plot_boundary("none", model, train_x, train_y)
Exemple #2
0
    train_set_y = train_set_y.astype(np.float32)

    start_time = time.time()
    costs = model.train(train_set_x,
                        train_set_y,
                        learning_rate=lr,
                        num_iterations=2000,
                        print_cost=True)
    print("training time = ", time.time() - start_time)

    plot_costs(costs, unit=ITERATIONS_UNIT, learning_rate=lr)

    # Predict
    train_predictions = model.predict(train_set_x)
    test_predictions = model.predict(test_set_x)
    print("Train accuracy = ", m.accuracy(train_predictions, train_set_y), "%")
    print("Test  accuracy = ", m.accuracy(test_predictions, test_set_y), "%")

    # Analyze
    # Example of a picture that was wrongly classified.
    errors = (index for index, (
        p, r) in enumerate(zip(test_predictions[0, :], test_set_y[0, :]))
              if p != r)

    index = next(errors)

    label_prediction = test_set_y[0, index]
    class_prediction = classes[int(test_predictions[0, index])].decode('utf-8')
    print(f"y = {label_prediction}, you predicted that it is a "
          f"{class_prediction} picture.")
Exemple #3
0
    # Dataset Loading
    X, Y = load_planar_dataset()
    X = X.astype("float32")
    Y = Y.astype("float32")
    shape_X = X.shape
    shape_Y = Y.shape
    m = shape_X[1]  # training set size

    # Test different hidden layer sizes
    plt.figure()
    hidden_layer_sizes = [1, 2, 3, 4, 5, 20, 50]
    for i, h in enumerate(hidden_layer_sizes):
        print(f"\n\n>>> Testing with hidden layer of size {h}")

        # Model
        model = ShallowNNModel(X.shape[0], h)
        model.train(X, Y, num_iterations=5_000)

        # Predict
        train_predictions = model.predict(X)
        train_accuracy = accuracy(train_predictions, Y)
        print(f"Train accuracy = {train_accuracy}%")

        # Plot
        plt.subplot(5, 2, i + 1)
        plt.title(f"Hidden Layer of size {h}")
        plot_decision_boundary(lambda x: model.predict(x.T), X, Y)
        plt.title(f"Decision Boundary for hidden layer size {h}")

    plt.show()
Exemple #4
0
    plt.rcParams['image.cmap'] = 'gray'

    # load image dataset: blue/red dots in circles
    train_x, train_y = load_dataset()
    train_x = train_x.astype('float32')
    train_y = train_y.astype('int16')

    m_train = train_x.shape[1]
    n = train_x.shape[0]

    # Model
    model = model(n)
    optimizers = OrderedDict()
    optimizers["gradient descent"] = GradientDescentOptimizer(0.0007)
    optimizers["momentum"] = MomentumOptimizer(0.0007, 0.9)
    optimizers["adam"] = AdamOptimizer(0.0007, 0.9, 0.999)

    for name, opt in optimizers.items():
        training = MiniBatchTraining(batch_size=64,
                                     optimizer=opt,
                                     listener=CostListener())

        model.train(train_x.astype('float32'),
                    train_y,
                    epochs=10_000,
                    training=training)
        train_predictions = model.predict(train_x)
        train_accuracy = m.accuracy(train_predictions, train_y)
        print(f"Train accuracy = {train_accuracy}%")
        plot_boundary(name, model, train_x, train_y)