주중에 제대로 학습하지 못해서 주말에 몰아서 복습하고 있는 중이다.
무사히 수료할 수 있도록 노력하자.
이번 글은 CNN에서 아주 유명하면서도 기초적인 MNIST 데이터를 통해
이미지 인식을 하는 것에 대한 내용이다.
from tensorflow.keras.datasets import mnist
(train_data, train_labels), (test_data, test_labels) = mnist.load_data()
train_data = train_data.astype('float32') / 255.0
test_data = test_data.astype('float32') / 255.0
train_data = np.expand_dims(train_data, -1)
test_data = np.expand_dims(test_data, -1)
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
network = Sequential([
Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)),
MaxPooling2D(2,2),
Conv2D(64, (3,3), activation='relu'),
MaxPooling2D(2,2),
Flatten(),
Dense(128, activation='relu'),
Dropout(0.5),
Dense(10, activation='softmax')
])
network.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
history = network.fit(train_data, train_labels,
validation_data=(test_data, test_labels),
epochs=10,
batch_size=128)
test_loss, test_acc = network.evaluate(test_data, test_labels)
print("Test Accuracy:", test_acc)
from google.colab import drive
drive.mount('/content/drive')
import os
save_dir = '/content/drive/MyDrive/AI_service_track/Week_06/SCC_AI'
os.makedirs(save_dir, exist_ok=True)
save_path = os.path.join(save_dir, 'mnist_ocr.keras')
network.save(save_path)
from tensorflow.keras.models import load_model
loaded_network = load_model(save_path)
prediction = loaded_network.predict(test_data[:5])
print(prediction.argmax(axis=1))