Deeplearning4j как следует нормализовать данные

Как мои входные данные должны быть нормализованы для model.fit в Deeplearning4j?

В настоящее время у меня есть итерация по большему количеству данных.

Я вижу, что некоторые люди приходят к полному набору данных.

В моей голове более логично, что набор данных каждой итерации нормализуется до model.fit.

Есть ли лучшая практика кодирования нормализации в итераторе?

А как насчет ввода для предсказания?


person Dasma    schedule 27.11.2019    source источник


Ответы (1)


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

Если вы используете нормализатор, основанный на статистике (т. Е. Вы нормализуете до нулевого среднего, единичной дисперсии; например, NormalizerStandardize), тогда вам сначала нужно .fit() на вашем DataSetIterator. При этом будут проанализированы все ваши данные и собрана необходимая статистика, чтобы иметь возможность должным образом нормализовать данные.

Впоследствии и для нормализаторов, которые не должны соответствовать данным (т.е. если у вас есть фиксированный диапазон, как это было бы с изображениями), вы устанавливаете нормализатор на своем DataSetIterator с помощью .setPreProcessor(normalizer). С этого момента ваш DataSetIterator будет возвращать нормализованные значения.

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

Если ваш нормализатор должен соответствовать данным, вы можете использовать его метод .save(), чтобы сохранить его, и его метод .load(), чтобы загрузить его. Для других нормализаторов вы можете просто создать новый экземпляр.

person Paul Dubs    schedule 27.11.2019