class MLGUI: def __init__(self, master): self.master = master master.title("My ML GUI") self.network = MyNetwork() self.label = Label(master, text="This is ML GUI") self.label.pack() self.load_button = Button(master, text="Load Data", command=self.load) self.load_button.pack() self.learn_button = Button(master, text="Teach Network", command=self.teach) self.learn_button.pack() self.test_button = Button(master, text="Test Network", command=self.test) self.test_button.pack() self.close_button = Button(master, text="Close", command=master.quit) self.close_button.pack() def load(self): self.network.load_data() print("Im loading") def teach(self): print("Im teaching") self.network.learn() def test(self): print("Im testing") predictions = self.network.predict() show_image(predictions, self.network.test_labels, self.network.test_images)
# t_batch = t_train[batch_mask] x_batch = x_train t_batch = t_train # Calculate Gradient grad = network.gradient(x_batch, t_batch) # Update Gradient for key in ('W1', 'b1', 'aa1', 'bb1', 'W2', 'b2'): network.params[key] -= learning_rate * grad[key] loss = network.loss(x_batch, t_batch) train_loss_list.append(loss) if i % iter_per_epoch == 0: train_acc = network.accuracy(x_train, t_train) train_acc_list.append(train_acc) test_acc = network.accuracy(x_test, t_test) test_acc_list.append(test_acc) print(train_acc, test_acc) print(network.predict(x_train)) print(network.params['aa1'], network.params['bb1']) plt.style.use('seaborn-whitegrid') plt.plot(train_loss_list, label='Loss') plt.title("Learning Result") plt.xlabel("Epochs") plt.ylabel("Loss") plt.show()