MNIST 를 학습하고 예측하는 코드

2024. 7. 15. 23:44DATA/BIGDATA

반응형

Tensorflow를 사용하여 Deep Neural Network(DNN)을 구성하여 MNIST 예제를 학습하고 예측하는 코드 

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Flatten, Dense
from tensorflow.keras.optimizers import Adam

# Model 생성
model = Sequential()

# 입력층
model.add(Flatten(input_shape=(784,)))

# Hidden Layer 1
model.add(Dense(units=64, activation='relu'))

# Hidden Layer 2
model.add(Dense(units=128, activation='relu'))

# 출력층
model.add(Dense(units=10, activation='softmax'))

# 모델 컴파일
model.compile(optimizer=Adam(),  # Adam optimizer 사용
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# 모델 학습
result = model.fit(x_data_norm,  # 입력 데이터 (정규화된 이미지 데이터)
                   y_data,       # 타깃 데이터 (레이블)
                   epochs=40,    # 학습 반복 수
                   verbose=1,    # 학습 과정 출력 여부 (1: 출력)
                   batch_size=100,
                   validation_split=0.3)  # 검증 데이터 비율




-Model 생성: Sequential()을 사용하여 Sequential 모델을 생성
-Hidden Layer 1: Dense 레이어를 추가하여 첫 번째 은닉층을 정의한다. 유닛 수는 64이며, 활성화 함수로는 ReLU를 사용한다.
-Hidden Layer 2: 두 번째 은닉층을 추가한다. 유닛 수는 128이며, 활성화 함수로는 마찬가지로 ReLU를 사용한다.
-출력층: Dense 레이어를 추가하여 출력층을 정의한다. 유닛 수는 클래스 개수에 맞게 10으로 설정하고, 활성화 함수로는 softmax를 사용하여 다중 클래스 분류를 수행한다.
-모델 컴파일: Adam 옵티마이저를 사용하여 모델을 컴파일한다. 손실 함수로는 sparse_categorical_crossentropy를, 평가 지표로는 정확도(accuracy)를 지정한다.
-모델 학습: fit() 메서드를 사용하여 모델을 학습시킨다. x_data_norm은 입력 데이터를, y_data는 타깃 데이터를 나타낸다. epochs는 전체 데이터셋을 반복할 횟수를 의미하며, batch_size는 한 번의 배치에 사용할 샘플 수를 나타낸다. validation_split은 학습 데이터에서 검증 데이터로 사용할 비율을 의미한다.

이 코드를 실행하면 MNIST 데이터셋을 사용하여 DNN 모델을 학습하고, 정확도와 손실을 모니터링할 수 있다.

 
 

 

 

반응형

'DATA > BIGDATA' 카테고리의 다른 글

회귀분석에서 가설 검정  (0) 2024.09.05
표본상관계수  (0) 2024.09.04
정규화(Normalization)  (0) 2024.07.15
Cross Entropy (크로스 엔트로피)  (0) 2024.07.15
로지스틱 회귀(Logistic Regression)  (0) 2024.07.15