РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
195 of 824 menu

Класс Flatten

Класс Flatten применяется к данным для преобразования многомерного тензора в одномерный вектор. Слой принимает на вход тензор произвольной размерности и разворачивает все измерения, кроме первого (размера батча), в одно. Первым параметром можно передать настройки слоя, вторым - имя слоя. Слой часто используется для перехода от сверточных или рекуррентных слоев к полносвязным.

Синтаксис

tf.keras.layers.Flatten(data_format=None, **kwargs)

Пример

Давайте создадим слой Flatten и применим его к двумерному тензору:

import tensorflow as tf layer = tf.keras.layers.Flatten() t = tf.constant([[1, 2, 3], [4, 5, 6]]) res = layer(t) print(res)

Результат выполнения кода:

tf.Tensor( [[1. 2. 3. 4. 5. 6.]], shape=(1, 6), dtype=float32)

Пример

Давайте применим слой Flatten к трехмерному тензору с размером батча 2:

import tensorflow as tf layer = tf.keras.layers.Flatten() t = tf.constant([ [[1, 2], [3, 4]], [[5, 6], [7, 8]] ]) res = layer(t) print(res)

Результат выполнения кода:

tf.Tensor( [[1. 2. 3. 4.] [5. 6. 7. 8.]], shape=(2, 4), dtype=float32)

Пример

Давайте используем слой Flatten внутри модели Keras после сверточного слоя:

<~show~ file="model.py"> <+python+> import tensorflow as tf model = tf.keras.Sequential([ tf.keras.layers.Conv2D(8, (3, 3), input_shape=(8, 8, 1)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(4) ]) model.summary() <-python-> <-show->

Результат выполнения кода:

"Model: \"sequential\" Layer (type) Output Shape Param # ================================================================= conv2d (Conv2D) (None, 6, 6, 8) 80 flatten (Flatten) (None, 288) 0 dense (Dense) (None, 4) 1156 ================================================================= Total params: 1236 (4.83 KB) Trainable params: 1236 (4.83 KB) Non-trainable params: 0 (0.00 Byte)"

Пример

Давайте узнаем форму тензора до и после применения слоя Flatten:

import tensorflow as tf layer = tf.keras.layers.Flatten() t = tf.constant([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) res = layer(t) print("before:", t.shape) print("after:", res.shape)

Результат выполнения кода:

before: (2, 2, 2) after: (2, 4)

Смотрите также

  • слой Reshape,
    который изменяет форму тензора
  • слой Dense,
    который создает полносвязный слой
  • слой Permute,
    который переставляет оси тензора
  • слой Input,
    который задает вход модели
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить