본문 바로가기

Languages&Library/Tensorflow & Keras

CNN 예제

from keras.datasets import cifar10
from keras.models import Model
from keras.layers import Dense, Flatten, Input
from keras.layers import Conv2D, MaxPooling2D

# 데이터 로드
(x_train, y_train), (x_test, y_test) = cifar10.load_data()

# 데이터 정규화
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255

# CNN 모델 생성
inputs = Input(shape=x_train.shape[1:])

conv1 = Conv2D(32, (3, 3), padding='same', activation='relu')(inputs)
conv2 = Conv2D(32, (3, 3), activation='relu')(conv1)
pool1 = MaxPooling2D(pool_size=(2, 2))(conv2)

conv3 = Conv2D(64, (3, 3), padding='same', activation='relu')(pool1)
conv4 = Conv2D(64, (3, 3), activation='relu')(conv3)
pool2 = MaxPooling2D(pool_size=(2, 2))(conv4)

flat = Flatten()(pool2)
dense = Dense(512, activation='relu')(flat)
outputs = Dense(10, activation='softmax')(dense)

model = Model(inputs=inputs, outputs=outputs)