■ 다층 퍼셉트론 신경망을 만드는 방법을 보여준다.
▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
import keras.datasets.mnist as mnist import keras.layers as layers import keras.models as models import keras.utils.np_utils as np_utils import matplotlib.pyplot as pp import numpy as np print("데이터 로드를 시작합니다.") (trainInputNDArray, trainCottectOutputNDArray), (testInputNDArray, testCorrectOutputNDArray) = mnist.load_data() trainInputNDArray = trainInputNDArray.reshape(60000, 784).astype("float32") / 255.0 testInputNDArray = testInputNDArray.reshape(10000, 784).astype("float32") / 255.0 trainCottectOutputNDArray = np_utils.to_categorical(trainCottectOutputNDArray) testCorrectOutputNDArray = np_utils.to_categorical(testCorrectOutputNDArray) print("데이터 로드를 종료합니다.") print("모델 정의를 시작합니다.") model = models.Sequential() model.add(layers.Dense(units = 64, input_dim = 28 * 28, activation = "relu")) model.add(layers.Dense(units = 10, activation = "softmax")) model.compile(loss = "categorical_crossentropy", optimizer = "sgd", metrics = ["accuracy"]) print("모델 정의를 종료합니다.") print("모델 학습을 시작합니다.") history = model.fit(trainInputNDArray, trainCottectOutputNDArray, epochs = 5, batch_size = 32) print("모델 학습을 종료합니다.") print("훈련 손실 : ", history.history["loss"]) print("훈련 정확도 : ", history.history["acc" ]) print("모델 평가를 시작합니다.") evaluationList = model.evaluate(testInputNDArray, testCorrectOutputNDArray, batch_size = 32) print("[평가 손실, 평가 정확도] = ", evaluationList) print("모델 평가를 종료합니다.") print("모델 데이터 저장을 시작합니다.") model.save("model.data") print("모델 데이터 저장을 종료합니다.") print("모델 사용을 시작합니다.") inputNDArray = testInputNDArray[0:1] correctOutputNDArray = testCorrectOutputNDArray[0:1] outputNDArray = model.predict(inputNDArray) print("정답 : ", np.argmax(correctOutputNDArray)) print("평가 : ", np.argmax(outputNDArray)) print("모델 사용을 종료합니다.") |