Я обучил полностью сверточную нейронную сеть с Keras. Я использовал Functional API и определил входной слой как Input(shape=(128,128,3))
, что соответствует размеру изображений в моем тренировочном наборе.
Однако я хочу использовать обученную модель на изображениях переменных размеров (что должно быть в порядке, потому что сеть полностью сверточная). Для этого мне нужно изменить свой входной слой на Input(shape=(None,None,3))
. Очевидным способом решения этой проблемы было бы обучение моей модели непосредственно с формой ввода (None,None,3)
, но я использую пользовательскую функцию потерь, где мне нужно указать размер моих тренировочных образов.
Я попытался определить новый входной слой и назначить его моей модели следующим образом:
from keras.engine import InputLayer
input_layer = InputLayer(input_shape=(None, None, 3), name="input")
model.layers[0] = input_layer
Это на самом деле соответственно меняет размер входных слоев, но следующие слои по-прежнему ожидают (128,128,filters)
входных данных.
Есть ли способ изменить все входные значения одновременно?