[TensorFlow] SeparableConv2D 레이어 예제

물론, 더 자세한 예제를 제공해 드릴게요. 아래는 tf.keras.layers.SeparableConv2D 레이어를 사용하여 간단한 컨볼루션 신경망을 만드는 예제입니다.

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import SeparableConv2D, MaxPooling2D, Flatten, Dense

## 데이터 생성 및 전처리
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

## 모델 구성
model = Sequential([
    SeparableConv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)),
    MaxPooling2D((2, 2)),
    SeparableConv2D(64, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    SeparableConv2D(128, (3, 3), activation='relu'),
    MaxPooling2D((2, 2)),
    Flatten(),
    Dense(64, activation='relu'),
    Dense(10, activation='softmax')
])

## 모델 컴파일
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

## 모델 요약
model.summary()

## 모델 훈련
model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))` 

이 예제에서는 CIFAR-10 데이터셋을 사용하여 분류 모델을 구성합니다. 모델은 3개의 SeparableConv2D 레이어와 MaxPooling2D 레이어로 구성되며, 마지막에는 완전 연결 계층(Dense)이 추가됩니다. 모델은 10개의 클래스를 분류하는 작업을 수행하도록 구성되었습니다.

SeparableConv2D 레이어를 사용하여 합성곱 층을 만들 때, 일반적인 합성곱 레이어보다 더 가벼운 모델을 구성할 수 있습니다.