Вы правы, tf.keras
не поддерживает пакетное изменение размеров - если вам нужен слой, который будет делать это, но при этом работает с tf.keras
, просто напишите собственный слой
class BatchAwareReshape(tf.keras.layers.Layer):
def __init__(self, shape, **kwargs):
super().__init__(**kwargs)
self._shape = shape
def call(self, inputs):
return tf.reshape(inputs, self._shape)
Поскольку tf.reshape
знает размер партии, теперь вы можете вызвать слой BatchAwareReshape(shape=(batch*time, w, h, c))
внутри своей модели, и он будет работать.