См закомментированные строки с сообщением об ошибке. Вы получаете разные ошибки в зависимости от того, что вы комментируете. AFAIK, вам нужно только определить сборку и задать форму ввода, позвоните super et c. Но, похоже, ничего не работает. Я сделал это минимальным. Очевидно, в моем первоначальном случае были слои и та же проблема.
import numpy as np
import tensorflow as tf
class Test(tf.keras.models.Model):
def __init__(self):
super().__init__()
def call(self, x):
return x
def build(self, input_shape):
# self._set_inputs(input_shape) # ValueError: Model inputs are already set.
super().build(input_shape) # AttributeError: The layer has never been called and thus has no defined input shape.
self.built = True
model = Test()
x = np.random.randn(100, 4)
model(x)
print(model.input_shape)
# model.save('here.tf')