Использование файла веса для изображения разного размера

Я хочу обучить CNN, где размер изображения составляет 128 * 512, затем я хочу использовать этот файл веса для обучения других данных с размером 128 * 1024. Это означает, что я хочу использовать предварительно обученный файл веса во время обучения разных данных (128 * 1024).

Возможно ли это или как я могу это сделать?

Я хочу сделать это, потому что у меня есть только 300 изображений с размером 128 * 1024, в то время как у меня есть 5000 изображений с размером 128 * 512, и оба набора данных разные.

Спасибо


person N_2930    schedule 17.05.2018    source источник
comment
Вы можете повторно использовать первые несколько слоев вашей CNN, поскольку размеры весов не зависят от входного размера. У вас есть полностью подключенный слой (слои) в конце?   -  person c2huc2hu    schedule 17.05.2018
comment
Это зависит от сети, которую вы используете. Если вы создаете полностью CNN, можно повторно использовать все веса из меньших изображений. Если вы используете слой Flatten() с Dense(), последнее прошлое необходимо пересчитать, так как размер будет другим.   -  person Daniel GL    schedule 17.05.2018
comment
Нет, у меня нет полностью подключенного слоя в конце. Я использую UNet   -  person N_2930    schedule 17.05.2018


Ответы (1)


Если ваша модель полностью CNN, совершенно нет необходимости иметь разные модели.

Модель CNN может делать изображения любого размера. Просто убедитесь, что input_shape=(None,None,channels)

Вам понадобятся отдельные массивы numpy, один для больших изображений, другой для маленьких изображений, и вам придется вызывать разные методы подгонки для каждого.

(Но, вероятно, вы все равно будете работать с генератором)

person Daniel Möller    schedule 17.05.2018