#python #tensorflow #machine-learning #keras #tensorflow-datasets
Вопрос:
Я пытаюсь написать модель Keras, которая реализует некоторую сложную логику. Эта логика была реализована в моем методе вызова
Поскольку мои сетевые слои являются сверточными, моя модель теоретически может предсказывать размеры входных данных, которые отличаются от размера, на котором я тренировался. Есть ли какой-либо способ указать это для выполнения прогнозов по данным.
Вот мой пример кода
class CustomModel(tf.keras.Model): def __init__(self): super().__init__() self.conv = tf.keras.layers.Conv2D(filters=4, kernel_size=4) def call(inputs): image = inputs[0] output = self.conv(image) # There is more complex logic here for inputs[1] combined_output = (output, another_output) return combined_output
И это код, который я использую для запуска модели
model = CustomModel() model.compile() model.fit(x=Train_TF_Dataset) model.save(filename) load_model = tf.keras.models.load_model(filename) model.predict(x=Predict_TF_Dataset)
Набор данных train TF и наборы данных predict TF состоят из разных размеров, что является нашим преимуществом.
Обучающие данные состояли из кортежа изображений 28x28x2 и эталонного изображения, в то время как данные прогнозирования состоят из 512x512x2 вместе с соответствующими эталонными изображениями. Размер первого ввода в кортеже может быть любым.
Есть ли какой-нибудь способ указать, что форма ввода (Нет, Нет, Нет, 2) вместо (Нет, 28, 28, 2). Первое значение None по умолчанию является переменным для размера пакета.
Решения, которые я видел в stackoverflow, просто преобразуют его в функциональную модель, что невозможно из-за сложности моего метода вызова