def on_end(self): plot_costs(self.costs, unit=5, learning_rate=0.0001)
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_dataset() plt.show() m_train = train_x.shape[1] m_test = test_x.shape[1] n = train_x.shape[0] for initializer in NNModel.initializers.keys(): # Model model = NNModel(n, initializer) train_x = train_x.astype("float32") train_y = train_y.astype("float32") costs = model.train(train_x, train_y, print_cost=True) plot_costs(costs, unit=ITERATION_UNIT, learning_rate=0.01) # 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(initializer, model, train_x, train_y)
def on_end(self): print("time = ", time.time() - start_time) plot_costs(self.costs, unit=1000, learning_rate=0.3)
print("=== Train ===") pixels = num_px * num_px * 3 model = LogisticRegressionModel(pixels) lr = 0.005 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)