Exemple #1
0
#5.7.4 오차역전파법을 사용한 학습 구현하기
import sys, os
sys.path.append(os.pardir)
import numpy as np
from MNIST.mnist import load_mnist
from practice_function import TwoLayerNet

##데이터 읽기
(x_train, t_train), (x_test, t_test) = load_mnist(normalize=True, one_hot_label=True)
network = TwoLayerNet(input_size = 784, hidden_size = 50, output_size = 10)

iters_num = 10000
train_size = x_train.shape[0]
batch_size = 100
learning_rate = 0.1

train_loss_list = []
train_acc_list = []
test_acc_list = []

iter_per_epoch = max(train_size / batch_size, 1)

for i in range(iters_num):
    batch_mask = np.random.choice(train_size, batch_size)
    x_batch = x_train[batch_mask]
    t_batch = t_train[batch_mask]

    ## 오차역전파법으로 기울기를 구하기
    grad = network.gradient(x_batch, t_batch)

    ##갱신
Exemple #2
0
import os, sys
sys.path.append(os.pardir)
import numpy as np
import matplotlib.pyplot as plt
from MNIST.mnist import load_mnist
from DeeplearningFromScratch.multi_layer_net_extend import MultiLayerNetExtend
from DeeplearningFromScratch.trainer import  Trainer


(x_train, t_train), (x_test, t_test) = load_mnist(normalize=True)

x_train = x_train[:300]
t_train = t_train[:300]

use_dropout = True
dropout_ratio = 0.2

network = MultiLayerNetExtend(input_size=784, hidden_size_list=[100,100,100,100,100,100],
                              output_size=10, use_dropout=use_dropout, dropout_ration= dropout_ratio)

trainer = Trainer(network, x_train, t_train, x_test,t_test, epochs=301,
                  mini_batch_size=100, optimizer='sgd', optimizer_param={'lr': 0.01}, verbose=True)


trainer.train()

train_acc_list , test_acc_list = trainer.train_acc_list, trainer.test_acc_list

markers = {'train':'o', 'test':'s'}
x=np.arange(len(train_acc_list))
plt.plot(x, train_acc_list,marker='o', label='train',markevery=10)
def get_data():
    (x_train, t_train), (x_test, t_test) = load_mnist(normalize=True,
                                                      flatten=True,
                                                      one_hot_label=False)

    return x_test, t_test
Exemple #4
0
#3.6.1 손글씨 숫자 인식
import sys, os
sys.path.append(os.pardir)
from MNIST.mnist import load_mnist
import numpy as np
from PIL import Image

(x_train, t_train), (x_test, t_test) = load_mnist(flatten=True,
                                                  normalize=False)
"""print(x_train.shape)
print(t_train.shape)
print(x_test.shape)
print(t_test.shape)"""


def img_show(img):
    pil_img = Image.fromarray(np.uint8(img))
    pil_img.show()


img = x_train[0]
label = t_train[0]
print(label)

print(img.shape)
img = img.reshape(28, 28)
print(img.shape)

img_show(img)