Метод summary
Метод summary применяется к объекту модели Keras и
печатает в консоль сводную информацию о ее архитектуре.
В сводку попадают все слои модели в порядке их добавления,
форма выходного тензора каждого слоя и число параметров.
Первым параметром можно передать line_length -
максимальную длину строки вывода.
Вторым параметром передается positions -
список позиций столбцов формы.
Третьим параметром можно указать print_fn -
функцию для вывода строк вместо стандартного print.
Также доступны параметры expand_nested и
show_trainable для раскрытия вложенных моделей и
отображения обучаемости слоев.
Синтаксис
model.summary([line_length], [positions], [print_fn])
Пример
Давайте создадим простую модель с одним полносвязным слоем и выведем ее сводку:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(5,))
])
model.summary()
Результат выполнения кода:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 3) 18
=================================================================
Total params: 18 (72.00 B)
Trainable params: 18 (72.00 B)
Non-trainable params: 0 (0.00 B)
_________________________________________________________________
Пример
Давайте создадим модель с несколькими слоями и выведем сводку с ограничением длины строки:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, input_shape=(5,)),
tf.keras.layers.Dense(2)
])
model.summary(line_length=60)
Результат выполнения кода:
Model: "sequential"
____________________________________________________________
Layer (type) Output Shape Param #
============================================================
dense (Dense) (None, 4) 24
dense_1 (Dense) (None, 2) 10
============================================================
Total params: 34 (136.00 B)
Trainable params: 34 (136.00 B)
Non-trainable params: 0 (0.00 B)
____________________________________________________________
Пример
Давайте передадим собственную функцию вывода
через параметр print_fn и соберем сводку в список:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(5,))
])
lines = []
model.summary(print_fn=lambda x: lines.append(x))
print(lines[0])
print(lines[2])
Результат выполнения кода:
"Model: "sequential""
" dense (Dense) (None, 3) 18 "
Пример
Давайте выведем сводку модели с отображением обучаемости слоев:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, input_shape=(5,)),
tf.keras.layers.Dense(2, trainable=False)
])
model.summary(show_trainable=True)
Результат выполнения кода:
Model: "sequential"
____________________________________________________________________________
Layer (type) Output Shape Param # Trainable
============================================================================
dense (Dense) (None, 4) 24 Y
dense_1 (Dense) (None, 2) 10 N
============================================================================
Total params: 34 (136.00 B)
Trainable params: 24 (96.00 B)
Non-trainable params: 10 (40.00 B)
____________________________________________________________________________