Работа с различными размерами входов для TF - PullRequest
0 голосов
/ 01 марта 2020

У меня есть CNN, который я построил в TF, который занимает Input(shape = (1000,1000,5)). Это потому, что изображение представляет собой стопку из 5 черно-белых изображений. Все мои образцы - аэрофотоснимки разных регионов, поэтому исходные изображения имеют разные размеры (и намного больше, чем 1000, 1000). Однако TF требует, чтобы все входные данные были одного и того же заранее определенного размера, поэтому мы решили вырезать 1000, 1000 из всех изображений.

Это, очевидно, теряет много полезной информации. Я ищу способы создания сети с динамической c формой ввода, которая могла бы принять все исходные изображения. Я нашел несколько предложений в Интернете, но я нахожу проблемы с каждым из них.

  1. Создание отдельного Input() для каждого размера изображения (скажем, у меня есть 2 типа размеров), которое затем можно свернуть в один и тот же тензор формы , Проблема в том, что это означает, что на один сверточный слой не повлияет половина наблюдений, что плохо (если я не пойму, как работает слой ниже). Например:
# a and b are fixed, different, image shapes
for image in inputs:
    if image.shape == a:
        x = Input(shape = a)
        x = conv2d_transpose(output_shape = (1000, 1000, 5))
    else:
        y = Input(shape = b)
        y = conv2d_transpose(output_shape = (1000, 1000, 5))
Использование Eager Execution. Здесь все примеры, которые я нахожу, все еще предназначены для фиксированной формы ввода, поэтому я не могу придумать, как использовать ее для перебора образцов и создания разных входных данных. Я нашел эту тему , но ответивший сам ответил, и я не могу сказать, что понимаю, какое решение мне нужно. Изменение размеров изображений перед вводом. Это особенно плохая идея, потому что изменение размера искажает изображение и приводит к потере большого количества пространственных элементов, которые жизненно необходимы.

Любой вход (извините) приветствуется.

1 Ответ

0 голосов
/ 01 марта 2020

Есть ли причина не брать максимально возможный размер и ввод с нуля? Это то, что парень сделал в теме, которую вы связали. В некотором роде, но когда-то это было обычной практикой в ​​НЛП, и оно может иметь место в сверточных слоях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...