Атрибут output
Атрибут output класса Model возвращает выходной тензор
или список выходных тензоров модели. Значение атрибута становится
доступным после того, как модель была построена, то есть после первого
вызова метода build, вызова метода fit или любого
другого метода, инициирующего построение графа вычислений.
Если модель имеет один выход, атрибут вернет одиночный тензор,
если несколько - список тензоров. Для моделей, построенных через
Functional API, атрибут возвращает тензоры, указанные при создании.
Для моделей, построенных через Sequential API, атрибут возвращает
тензор последнего слоя.
Синтаксис
model.output
Пример
Давайте создадим простую модель через Sequential API
и посмотрим на значение атрибута output после построения:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(5,)),
tf.keras.layers.Dense(2)
])
model.build()
print(model.output)
Результат выполнения кода:
KerasTensor(type_spec=TensorSpec(shape=(None, 2), dtype=tf.float32, name=None), name='dense_1/BiasAdd:0', description="created by layer 'dense_1'")
Пример
Давайте создадим модель с несколькими выходами через Functional API
и проверим, что атрибут output возвращает список тензоров:
Результат выполнения кода:
[<KerasTensor: shape=(None, 2) dtype=float32 (created by layer 'out1')>, <KerasTensor: shape=(None, 3) dtype=float32 (created by layer 'out2')>]
Пример
Давайте сравним атрибуты output и outputs
на модели с одним выходом:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(5,))
])
model.build()
print(model.output)
print(model.outputs)
Результат выполнения кода:
KerasTensor(type_spec=TensorSpec(shape=(None, 3), dtype=tf.float32, name=None), name='dense/BiasAdd:0', description="created by layer 'dense'")
[<KerasTensor: shape=(None, 3) dtype=float32 (created by layer 'dense')>]