728x90
import tensorflow as tf
def AlexNet(
input_shape=None,
weights=None,
classes=1000,
classifier_activation='softmax'):
model = tf.keras.Sequential([
#특징 추출 부분
#Conv 1
tf.keras.layers.Conv2D(filters=96,
kernel_size=(11, 11),
strides=4,
padding="valid",
activation=tf.keras.activations.relu,
input_shape=input_shape),
#Max Pool 1
tf.keras.layers.MaxPool2D(pool_size=(3, 3),
strides=2,
padding="valid"),
tf.keras.layers.BatchNormalization(),
#Conv 2
tf.keras.layers.Conv2D(filters=256,
kernel_size=(5, 5),
strides=1,
padding="same",
activation=tf.keras.activations.relu),
#Max Pool 2
tf.keras.layers.MaxPool2D(pool_size=(3, 3),
strides=2,
padding="same"),
tf.keras.layers.BatchNormalization(),
#Conv 3
tf.keras.layers.Conv2D(filters=384,
kernel_size=(3, 3),
strides=1,
padding="same",
activation=tf.keras.activations.relu),
#Conv 4
tf.keras.layers.Conv2D(filters=384,
kernel_size=(3, 3),
strides=1,
padding="same",
activation=tf.keras.activations.relu),
#Conv 5
tf.keras.layers.Conv2D(filters=256,
kernel_size=(3, 3),
strides=1,
padding="same",
activation=tf.keras.activations.relu),
#Max Pool 3
tf.keras.layers.MaxPool2D(pool_size=(3, 3),
strides=2,
padding="same"),
tf.keras.layers.BatchNormalization(),
tf.keras.layers.Flatten(),
#분류 층 부분
#Fully connected layer 1
tf.keras.layers.Dense(units=4096,
activation=tf.keras.activations.relu),
tf.keras.layers.Dropout(rate=0.2),
#Fully connected layer 2
tf.keras.layers.Dense(units=4096,
activation=tf.keras.activations.relu),
tf.keras.layers.Dropout(rate=0.2),
#Fully connected layer 3
tf.keras.layers.Dense(units=classes,
activation=tf.keras.activations.softmax)
])
return model
728x90
'인공지능 AI > CNN' 카테고리의 다른 글
CNN GoogLeNet (0) | 2022.02.14 |
---|---|
CNN VGGNet (0) | 2022.02.14 |
CNN AlexNet (0) | 2022.02.14 |
CNN AlexNet Pytorch 실습 (0) | 2022.02.09 |
CNN 컨볼루션 신경망 convolutional neural network (0) | 2022.02.09 |