quilt code
[AI] tensorflow (1) 본문
tensorflow 기본 연습
1. my_mnist |
|||
|
|||
| mnist = tf.keras.datasets.mnist : 저장된 데이터를 불러옴 (x_train, y_train), (x_test, y_test) = mnist.load_data() : 데이터 학습(기출) / 학습된 데이터를 테스트해봄(수능) x_train, x_test = x_train/255.0, x_test/255.0 : 신경망이 읽을 수 있게 숫자를 압축해주는 과정 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), : 입력층, 28,28인 이유? 그냥.. 뭐 면이어서? 라고는 하는데 확실하게는 모르겠다 tf.keras.layers.Dense(512, activation=tf.nn.relu), : 은닉층 tf.keras.layers.Dense(10, activation=tf.nn.softmax) : 출력층 ] model.compile(optimizer='adam', : 여기는 그냥 그런거라고 생각하고 넘어가자 loss='sparse_categorical_crossentropy', metrics=['accuracy']) : accuracy가 높을 수록 안정된 데이터를 얻을 수 있음 model.fit(x_train, y_train, epochs=5) : 모델 훈련 epochs 모델 훈련 횟수. 안 쓰면 default 값으로 훈련 |
2. my_mnist02_data |
|||
|
|||
cv2.imwrite(img/0/{}.jpg.format(idx), x_train[idx]) : jpg파일로 format형식을 빌어 x_train으로 학습시킨 이미지를 저장함 |
3. my_mnist03_data |
|||
|
|||
02번이랑 별로 다른게 없음 |
4. my_mnist04_numpy |
|||
|
|||
np.save('x_train',x_train) np.save('x_test',x_test) numpy로 저장 |
5. my_mnist05 |
|||
|
|||
model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), : Flatten: 2차원 배열을 1차원 배열로 만듦 , 입력층을 만들어줌 , 평평하게 만듦 tf.keras.layers.Dense(512, activation=tf.nn.relu), #중간에 뉴런 512개/ 하나하나는 퍼셉트론 tf.keras.layers.Dense(10, activation=tf.nn.softmax) #출력층 : 0에서 9까지라서 10 ]) |
7. my_mnist06_predict |
|||
|
|||
predict = model.predict(x_test) : 모델 훈련 뒤 얼마나 예측을 잘하는지, 훈련한 것을 바탕으로 예측함 for i in range(10000): pred = np.argmax(predict[i]) : argmax - numpy 안에서 최대값의 index를 보여줌 (배열에는 못 쓰고 numpy에서만 사용) goog = y_test[i] if pred == goog cnt_o += 1 else: cnt_x += 1 print("i",i,"pred",pred,"goog",goog) # i번호_pred_goog.jpg로 fault 폴더에 저장하기(틀린 것들만 뽑아내기) (pred == goog가 아닌 것들) print("{}_{}_{}".format(i,pred,goog)) cv2.imwrite('fault/{}_{}_{}.jpg'.format(i,pred,goog), x_test[i]*255.0) : fault 폴더에 해당 형식으로 jpg 파일을 만듦. 255.0을 다시 곱해야 이미지가 제대로 나옴 결과) ![]() console에 뜬 파일이 fault 폴더에도 들어가 있음! |
8. my_mnist07_save |
|||
|
|||
model.save("mnist.h5") : mnist란 이름을 가진 h5파일을 만들어서 학습시킨 모델을 저장해줌. save폴더라고 생각하면 쉬움... ![]() |
9. my_mnist08_load |
|||
|
|||
model = keras.models.load_model("mnist.h5") : 8. my_mnist07_save 에서 만든 mnist.h5을 불러와줌. 미리 학습시키고 저장된 모델을 불러와서 구현함 |
'daily > AI' 카테고리의 다른 글
| [AI] OpenCV (0) | 2023.04.22 |
|---|---|
| [AI] tensorflow (3) (0) | 2023.04.22 |
| [AI] cifar10 (0) | 2023.04.20 |
| [AI] tensorflow (2) (0) | 2023.04.19 |
| [AI] numpy (0) | 2023.04.17 |

