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