Формат обучающего чипа и целевого изображения в TensorFlow - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь построить модель классификации земного покрова для Sentinel Image. Каналы изображения (полосы), которые я использую, являются 32-разрядными числами с плавающей запятой.

Мне нужно понять, как лучше отформатировать данные изображения, как чипы / патчи для обучения, так и Целевое изображение для классификации. У меня есть несколько вопросов?

  1. Нужно ли конвертировать исходные изображения и обучающие фишки из 32-битной на другую глубину?
  2. Нужно ли проверять, чтобы и тренировочные фишки / патчи ицель имеет одинаковую глубину (32-битная, 16-битная или другая)?
  3. Нужно ли перепродавать свои данные? Я видел некоторые статьи, в которых данные были перераспределены между 0-1 или 0-255?
  4. Влияет ли глубина данных на эффективность обучения и прогнозирования?

Большое спасибо.

Маз

1 Ответ

0 голосов
/ 09 октября 2019

Лучшая точность для использования на ПК - float32 по многим причинам, например, большая точность делает вычисления более точными, что лучше, но почему-то float16 медленнее, чем float32 на ПК (я не помню, почему) и float64 не работает медленно на обычных машинах.

Так что

  1. Обычно в любом случае вы должны использовать float32 в качестве ввода. Так что, если это в первую очередь float32, тогда просто используйте его вот так.

  2. Да, но я думаю, что все они будут преобразованы в требуемую точность в течение fit или predictдля керас. Это в $HOME/.keras/keras.json.

  3. Я не думаю, что это необходимо, но масштабирование по центру помогает конвергенции, хотя, Google всегда просто масштабирует до -1 to 1.

  4. Да, но, как я уже сказал, большая точность дает лучшую точность, но медленнее.

...