2024. 7. 15. 23:44ㆍDATA/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 |