Почему я должен конвертировать "uint8" в "float32" - PullRequest
1 голос
/ 30 января 2020

Я только начал изучать глубокие знания и начал создавать CNN с Keras.

Итак, я заметил, что часто при использовании набора данных MNIST после импорта изображений они конвертируются в float32 -Datatype.

Итак, мой вопрос, почему это так? Похоже, что он должен нормально работать с uint8 -Data. Что мне здесь не хватает? Зачем нужен float32?

1 Ответ

5 голосов
/ 30 января 2020

Ну, причина проста, вся математика для нейронных сетей непрерывна, а не дискретна, и это лучше всего аппроксимировать числами с плавающей запятой. Входы, выходы и веса нейронной сети являются непрерывными числами.

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

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

...