Нормализация входных данных в керасе - PullRequest
0 голосов
/ 30 апреля 2019

Одной из распространенных задач в DL является то, что вы нормализуете входные выборки до нулевого среднего и единичной дисперсии. Можно «вручную» выполнить нормализацию, используя такой код:

mean = np.mean(X, axis = 0)
std = np.std(X, axis = 0)
X = [(x - mean)/std for x in X]

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

m = Sequential()
m.add(SomeKerasLayzerForNormalizing(...))
m.add(Conv2D(20, (5, 5), input_shape = (21, 100, 3), padding = 'valid'))
... rest of network
m.add(Dense(1, activation = 'sigmoid'))

Надеюсь, вы понимаете, к чему я клоню.

1 Ответ

0 голосов
/ 30 апреля 2019

Возможно, вы можете использовать sklearn.preprocessing.StandardScaler для масштабирования ваших данных. Этот объект позволяет сохранять параметры масштабирования в объекте. Затем вы можете использовать входы типов Mixin в вашу модель, скажем:

  1. Your_model
  2. [param1_scaler, param2_scaler]

Вот ссылка https://www.pyimagesearch.com/2019/02/04/keras-multiple-inputs-and-mixed-data/

https://keras.io/getting-started/functional-api-guide/

...