-
keras-6 cnn딥러닝/keras 2023. 5. 29. 13:23
1. python
from keras import models from keras import layers model = models.Sequential() model.add(layers.Conv2D(32,(3,3), activation='relu', input_shape=(28,28,1))) model.add(layers.MaxPooling2D((2,2))) model.add(layers.Conv2D(32,(3,3), activation='relu')) model.add(layers.MaxPooling2D((2,2))) model.add(layers.Conv2D(32,(3,3), activation='relu')) model.add(layers.MaxPooling2D((2,2)))
sequential 클래스를 사용하여 신경망을 쌓는다. conv2d층과 maxpooling 층을 차례로 쌓는다.
model.add(layers.Flatten()) model.add(layers.Dense(64, activation='relu')) model.add(layers.Dense(10, activation='softmax'))
conv2d 층은 3d텐서를 출력하기때문에 flatten을 통해서 1차원으로 펼쳐서 maxpooling으로 이동한다.
from keras.datasets import mnist from tensorflow.keras.utils import to_categorical (train_images, train_labels),(test_images, test_labels) = mnist.load_data() # scaling train_data = train_images.reshape((60000,28,28,1)) train_data = train_data.astype('float32') / 255 test_data = test_images.reshape((10000,28,28,1)) test_data = test_data.astype('float32') / 255 train_target = to_categorical(train_labels) test_target = to_categorical(test_labels)
mnist 데이터를 불러오고 데이터를 분류한다.
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy']) model.fit(train_data, train_target, epochs=5, batch_size=64) Epoch 1/5 938/938 [==============================] - 16s 5ms/step - loss: 0.3730 - accuracy: 0.8853 Epoch 2/5 938/938 [==============================] - 4s 4ms/step - loss: 0.1240 - accuracy: 0.9618 Epoch 3/5 938/938 [==============================] - 4s 4ms/step - loss: 0.0861 - accuracy: 0.9733 Epoch 4/5 938/938 [==============================] - 4s 4ms/step - loss: 0.0688 - accuracy: 0.9784 Epoch 5/5 938/938 [==============================] - 4s 4ms/step - loss: 0.0548 - accuracy: 0.9827 <keras.callbacks.History at 0x7fef8d2393c0>
학습을 진행한다.
test_loss, test_acc = model.evaluate(test_data, test_target) 313/313 [==============================] - 1s 3ms/step - loss: 0.0693 - accuracy: 0.9801
모델을 평가한다.
test_acc 0.9800999760627747
정확도는 98프로이다.
'딥러닝 > keras' 카테고리의 다른 글
keras-5 boston (0) 2023.05.29 keras-3 reuter (0) 2023.05.29 keras-2 imdb (0) 2023.05.23 keras-1 mnist (0) 2023.05.23