합성곱(Convolutional) 신경망 알고리즘
Hyperparameter
Channel
Classification
1. MNIST Data_Set Load
import tensorflow
from tensorflow.keras.datasets import mnist
(X_train, y_train), (X_test, y_test) = mnist.load_data()
2. Data Preprocessing
2-1. Reshape and Normalization
X_train = X_train.reshape((60000, 28, 28, 1))
X_test = X_test.reshape((10000, 28, 28, 1))
X_train = X_train.astype(float) / 255
X_test = X_test.astype(float) / 255
2-2. One Hot Encoding
from tensorflow.keras.utils import to_categorical
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
3. MNIST Keras Modeling
3-1. Model Define
#Feature Extraction Layer
from tensorflow.keras import models
from tensorflow.keras import layers
model = models.Sequential()
model.add(layers.Conv2D(filters=32, kernel_size=(3,3), activation='relu', input_shape=(28, 28, 1)))
model.add(layers.MaxPool2D(pool_size=(2,2)))
model.add(layers.Conv2D(filters=64, kernel_size=(3,3), activation='relu'))
model.add(layers.MaxPool2D(pool_size=(2,2)))
model.add(layers.Conv2D(filters=64, kernel_size=(3,3), activation='relu'))
model.summary()
model.add(layers.Flatten())
model.add(layers.Dense(units=64, activation='relu'))
model.add(layers.Dense(units=10, activation='softmax'))
model.summary()
3-2. Model Compile
model.compile(loss = 'categorical_crossentropy',
optimizer = 'rmsprop',
metrics = ['accuracy'])
3-3. Model Fit
%%time
Hist_mnist = model.fit(X_train, y_train,
epochs = 100,
batch_size = 128,
validation_split = 0.2)
3-4.학습 결과 시각화
import matplotlib.pyplot as plt
epochs = range(1, len(Hist_mnist.history['loss']) + 1)
plt.figure(figsize = (9, 6))
plt.plot(epochs, Hist_mnist.history['loss'])
plt.plot(epochs, Hist_mnist.history['val_loss'])
# plt.ylim(0, 0.4)
plt.title('Training & Validation Loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend(['Training Loss', 'Validation Loss'])
plt.grid()
plt.show()
3-5. Model Evaluate
loss, accuracy = model.evaluate(X_test, y_test)
print('Loss = {:.5f}'.format(loss))
print('Accuracy = {:.5f}'.format(accuracy))
CNN(Convolutional Neural Network)-VGG-16 (0) | 2022.06.27 |
---|---|
CNN(Convolutional Neural Network)-이미지 데이터 셋을 이용한 CNN Modeling (0) | 2022.06.24 |
DNN(Deep Neural Network)-MNIST _Categorical Classification (0) | 2022.06.20 |
DNN(Deep Neural Network)-MNIST _Categorical Classification (0) | 2022.06.17 |
DNN(Deep Neural Network)-IMDB _Binary Classification (0) | 2022.06.17 |