tf.keras.layers.Flatten

tf.keras.layers.Flatten은 입력을 1차원으로 변환합니다.

Batch의 크기에는 영향을 주지 않습니다.



예제1

import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(512, activation=tf.nn.relu),
    tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])

model.summary()
Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
flatten (Flatten)            (None, 784)               0
_________________________________________________________________
dense (Dense)                (None, 512)               401920
_________________________________________________________________
dense_1 (Dense)              (None, 10)                5130
=================================================================
Total params: 407,050
Trainable params: 407,050
Non-trainable params: 0
_________________________________________________________________

tf.keras.layers.Flatten은 입력의 형태를 1차원으로 변환합니다.

입력의 형태가 (None, 28, 28)일 때, (None, 784)로 변환됩니다.



예제2

import tensorflow as tf

model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv2D(64, 3, 3, input_shape=(3, 32, 32)))
print(model.output_shape)


model.add(tf.keras.layers.Flatten())
print(model.output_shape)
(None, 1, 10, 64)
(None, 640)

tf.keras.layers.Flatten() 층을 추가함으로써 출력의 형태가 (None, 1, 10, 64)에서 (None, 640)이 되었습니다.



이전글/다음글