Время вычислений для полутоновых изображений, безусловно, быстрее, но не из-за нулей, это просто размер входного тензора. Цветные изображения [batch, width, height, 3]
, в то время как серые изображения [batch, width, height, 1]
. Разница в глубине, а также в пространственном размере влияет на время, затрачиваемое на первый сверточный слой, которое обычно является одним из наиболее трудоемких. Вот почему стоит рассмотреть возможность изменения размера изображений.
Вы также можете прочитать о 1x1 свертке , чтобы ускорить вычисления. Обычно он применяется в середине сети, когда количество фильтров становится значительно большим.
Что касается второго вопроса (если я правильно понял), в конечном итоге вам придется изменить размеры изображений. Если изображения содержат тексты с разными размерами шрифта, одной из возможных стратегий является изменение размера + блокнот или обрезка + изменение размера. Вы должны знать размер шрифта на каждом конкретном изображении, чтобы выбрать правильный отступ или размер обрезки. Этот метод требует (возможно) изрядного количества ручной работы.
Совершенно другим способом было бы игнорировать эти различия и позволить сети распознавать OCR, несмотря на несоответствие размера шрифта. Это жизнеспособное решение, не требующее большой предварительной ручной обработки, а просто требующее дополнительных обучающих данных, чтобы избежать переобучения. Если вы изучите набор данных MNIST , вы заметите, что цифры не всегда имеют одинаковый размер, однако CNN довольно легко достигают 99,5% точности.