📝딥러닝 텐서플로우 넘파이의 레이블 인코딩된 값을 원핫 인코딩으로 바꾸는 방법
바꾸는 방법은 텐서플로우에서 제공한다
import tensorflow as tf
# 학습용과 테스트용 둘다 바꿔준다 (num_classes= 는 아웃풋 레이어 갯수)
y_train = tf.keras.utils.to_categorical(y_train, num_classes= 10)
y_test = tf.keras.utils.to_categorical(y_test, num_classes= 10)
# 이렇게도 가능
from keras.utils import to_categorical
y_train = to_categorical(y_train, 10)
y_test = to_categorical(y_test, 10)
모델링할때 원핫인코딩 하였으므로 loss= 'categorical_crossentropy' 입력
분류 문제 loss 셋팅 https://coding-jisu.tistory.com/156
def build_model() :
model = Sequential()
model.add( Dense( units= 512, activation= 'relu', input_shape= (784, ) ) )
model.add ( Dropout(0.4) )
model.add( Dense( units=10, activation= 'softmax' ) )
model.compile( optimizer= 'adam', loss= 'categorical_crossentropy', metrics= [ 'accuracy' ])
return model
학습하고 모델을 평가할때 confusion_matrix를 사용하려면 원핫 인코딩을 다시 레이블 인코딩으로 바꿔준다
# 학습
model = build_model()
epoch_histroy = model.fit(X_train, y_train, epochs= 5, validation_data= (X_test, y_test))
# 평가
model.evaluate(X_test, y_test)
y_pred = model.predict(X_test)
from sklearn.metrics import confusion_matrix
# 원핫 인코딩을 레이블 인코딩으로 바꾸기
y_test = y_test.argmax(axis=1)
y_pred = y_pred.argmax(axis=1)
cm = confusion_matrix(y_test, y_pred)
'인공지능 > Deep Learning' 카테고리의 다른 글
[Deep Learning] CNN Pooling (0) | 2022.12.30 |
---|---|
[Deep Learning] CNN Convloution (0) | 2022.12.29 |
[Deep Learning] TensorFlow 모델 저장 / 불러오기 (0) | 2022.12.29 |
[Deep Learning] Dropout (0) | 2022.12.29 |
[Deep Learning] DNN TensorFlow 이미지 분류하는 딥러닝 해보기 (0) | 2022.12.29 |
댓글