from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
def build_model() :
model = Sequential()
model.add( Flatten( ) )
model.add( Dense( 128, 'relu' ) )
model.add( Dense( 10, 'softmax' ) )
model.compile( 'adam', loss = 'sparse_categorical_crossentropy' , metrics=['accuracy'] )
return model
Flatten은 이전 레이어의 출력인 다차원 배열을 1차원 배열로 변환
1134
3628
3910
1334
상태의 배열이 있다고 하면
1134362839101334 형태로 만드는 함수
softmax는 액티배이션 함수이며
입력받은 데이터들을 0과 1 사이의 확률로 변환하고, 모든 요소의 합을 1로 만드는 작업을 한다
위 작업에서는 10개의 카테고리컬 데이터로 이루어져있어서
각 클래스에 대한 확률을 계산하고 가장 높은 확률을 가진 클래스를 예측 결과로 반환한다
25번 파일을 어떻게 예측하는지 확인해보자
X_test[ 25 , : , : ]
25번 파일이 도대체 어떤 이미지인지 알 수 가 없다
이미지 파일로 확인해보자
plt.imshow( X_test[ 25 , : , : ] , cmap = 'gray' )
plt.show()
코트? 인것 같긴한데 확실한 값을 보자
y_test[ 25 ]
4 #코트
그럼 모델의 성능을 확인을 해보자
model.predict( X_test[ 25 , : , : ] )
왜 에러가 난걸까?
X_test[ 25 , : , : ].shape
(28, 28)
X_test 25번 파일의 데이터파일의 유형은 2차원 배열
하지만 모델이 입력받는 인풋 데이터 값은 3차원 배열이기때문에
reshape 해줘야 한다
X_test[ 25 , : , : ].reshape( 1, 28, 28 )
y_pred = model.predict( X_test[ 25 , : , : ].reshape( 1, 28, 28 ) )
y_pred
결과를 10개었지만, 가장 높은 숫자의 인덱스를 찾아야한다
맥스값의 인덱스를 찾는 함수는?
argmax()
y_pred.argmax()
2
y_test[ 25 ]
4 #코트
y_pred.max()
0.569253
해당 정확도가 56퍼센트라 그런지 틀렸다
정확도가 높은 다른 데이터를 한번 보자
정확도 99퍼센트로 정답을 맞추는것을 볼 수 있다
'Python > DeepLearning' 카테고리의 다른 글
딥러닝 - 모델 Save, Load (0) | 2024.04.18 |
---|---|
딥러닝 - 이미지분류 3) Confusion Matrix, Acrruracy (0) | 2024.04.18 |
딥러닝 - 이미지 분류 1) Data Preprocessing (0) | 2024.04.18 |
딥러닝 - 조건 성립 정지법 callbacks.EarlyStopping (0) | 2024.04.17 |
딥러닝 - GridSearch 그리드서치 (베스트 모델 찾기) (0) | 2024.04.17 |