Я прочитал ваш код и вижу, что создается модель PyTorch, включая ошибку во втором Dense
слое с двумя пропущенными числами.
Модели Keras не должны следовать той же логике моделей PyTorch.
Эта модель должна быть создана следующим образом:
input_tensor = Input(input_shape)
output_tensor = Flatten()(input_tensor)
output_tensor = Dense(hidden_size, activation='relu')(output_tensor)
output_tensor = Dense(num_classes)
model = keras.models.Model(input_tensor, output_tensor)
Этот экземпляр model
готов к компиляции и обучению:
model.compile(optimizer=..., loss = ..., metrics=[...])
model.fit(x_train, y_train, epochs=..., batch_size=..., ...)
Нет причин дляКерас для подкласса Model
, если только вы не очень продвинутый пользователь, пробующий какие-то очень необычные вещи.
Кстати, будьте осторожны, чтобы не смешать tf.keras.anything
с keras.anything
.Первая - это версия Keras, созданная напрямую с помощью tenorflow, а вторая - оригинальная Keras.Они не совсем одинаковые, версия тензорного потока кажется более глючной, и смешивание двух в одном коде звучит как плохая идея.