📝딥러닝 여러개의 값 중에서 가장 큰 값을 선택하는 엑티베이션 소프트맥스
Softmax
여러개의 값 중에서 가장 큰 값을 선택 [0.1, 0.1, 0.05, 0.1, 9.5, 0.1, 0.05, 0.05, 0.05]
여기서 가장 큰 값을 1로 만들고 나머지는 0으로 만들어준다. [0, 0, 0, 0, 1, 0, 0, 0, 0]
아웃풋 레이어 activation= 'softmax'
def build_model() :
model = Sequential()
model.add( Flatten() )
model.add( Dense( units= 128, activation= 'relu') )
model.add( Dense( units= 64, activation= 'relu') )
# 아웃풋 레이어에 activation= 'softmax' 사용
model.add( Dense( units=10, activation= 'softmax' ) )
model.compile( optimizer= 'adam', loss= 'sparse_categorical_crossentropy', metrics= [ 'accuracy' ])
return model
아웃풋 노드를 10개로 설정했기때문에 y_pred 결과값은 10개가 나온다
1개의 값만 출력될 수 있게 소프트맥스로 나온 결과값을 레이블 인코딩으로 바꿔준다
※ numpy의 argmax() 함수를 이용하면 가장 큰 값이 들어있는 곳의 인덱스를 얻을 수 있다
# 예측한 값을 y_pred 변수에 저장
y_pred = model.predict(X_test)
# 1개만 바꾸기
y_pred[1].argmax()
# 전체 데이터 바꾸기
y_pred = y_pred.argmax(axis=1)
'인공지능 > Deep Learning' 카테고리의 다른 글
[Deep Learning] epochs 횟수 조정 (0) | 2022.12.29 |
---|---|
[Deep Learning] 분류 문제 Loss 셋팅 (0) | 2022.12.28 |
[Deep Learning] Flatten Library (1) | 2022.12.28 |
[Deep Learning] TensorFlow EarlyStopping, Callback (0) | 2022.12.28 |
[Deep Learning] 학습중에 평가하기 validation (0) | 2022.12.28 |
댓글