Метод compute_output_shape
Метод compute_output_shape класса Layer
возвращает форму выходного тензора слоя
по известной форме входного тензора.
Метод принимает первым параметром
форму входных данных input_shape
в виде кортежа или TensorShape.
Метод используется для проверки совместимости
слоев в модели без реального прохода данных
через слой.
Если слой еще не построен, метод может
вызвать ошибку или потребовать
предварительного вызова build.
По умолчанию возвращается форма входных
данных, если слой не меняет размерность.
Синтаксис
layer.compute_output_shape(input_shape)
Пример
Давайте создадим слой Dense
с 3 нейронами и вычислим форму
выходных данных для входа формы (5,):
import tensorflow as tf
layer = tf.keras.layers.Dense(3)
output_shape = layer.compute_output_shape((5,))
print(output_shape)
Результат выполнения кода:
(5, 3)
Пример
Давайте вычислим форму выходных данных
для двумерного входа формы (None, 5):
Результат выполнения кода:
(None, 3)
Пример
Давайте создадим собственный слой,
который удваивает размерность,
и переопределим в нем метод
compute_output_shape:
import tensorflow as tf
class DoubleLayer(tf.keras.layers.Layer):
def __init__(self):
super(DoubleLayer, self).__init__()
def build(self, input_shape):
super(DoubleLayer, self).build(input_shape)
def call(self, inputs):
return inputs * 2
def compute_output_shape(self, input_shape):
return input_shape[:-1] + (input_shape[-1] * 2,)
layer = DoubleLayer()
output_shape = layer.compute_output_shape((None, 4))
print(output_shape)
Результат выполнения кода:
(None, 8)