Esempio n. 1
0
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)
Esempio n. 2
0
    # 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()