딥러닝이란?
다중 퍼셉트론
: 많은 선형 모델을 활용하여 결과를 도출한다.
from tensorflow.keras.datasets import mnist
(X_train,y_train),(X_test,y_test)=mnist.load_data()
훈련용 데이터와 평가용 데이터가 자동으로 나눠져있다.X_train.shape, y_train.shape
X_test.shape, y_test.shape
import matplotlib.pyplot as plt
plt.imshow(X_train[0])
plt.show()
plt.imshow(X_train[0], cmap = 'gray')
plt.show()
cmap 속성 추가하기from tensorflow.keras.models import Sequential # 딥러닝 모델의 뼈대
from tensorflow.keras.layers import InputLayer, Dense # 입력층, 중간/출력층
Dense : 선형모델의 집합, 병렬로 연결model = Sequential() # 딥러닝 모델의 뼈대 생성
model.add(InputLayer(input_shape=(784,))) # 입력층 추가,() 안에는 데이터의 크기가 들어가야한다.
model.add(Dense(units=20, activation = 'sigmoid')) #20개를 모음, 중간층 추가
model.add(Dense(units=40, activation = 'sigmoid')) #20개를 모음, 중간층 추가
model.add(Dense(units=30, activation = 'sigmoid')) #20개를 모음, 중간층 추가
model.add(Dense(units=10, activation= 'softmax')) # 출력층 10개의 확률
#1. 모델의 학습 방법 및 평가방법 설정
model.compile(loss="sparse_categorical_crossentropy",
optimizer='Adam',
metrics = ['accuracy'])
#2. 모델학습
model.fit(X_train.reshape(60000,784),y_train,epochs = 100) #epochs : 데이터 학습 횟수
loss와 optmizer는 어떻게 학습을 할것인지 정하는 역할pre = model.predict(X_test.reshape(10000,784))
pre.shape
pre[0]
평가하기
pre_classes = pre.argmax(axis=1)
pre_classes
각 데이터의 결과에서 제일 높은 확률의 값을 출력함
정확도 평가
!pip install sklearn
from sklearn.metrics import accuracy_score
accuracy_score(y_test,pre_classes)
model.evaluate(X_test.reshape(10000,784),y_test)
model.save("./hand_write_digit_model.h5")
홈페이지 들어가기
www.tensorflow.org
API 선택하기
버전 선택하기
필요한 거 선택하기