#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) ##갱신
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
#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)