Это более концептуальный вопрос, но я должен признаться, что с ним какое-то время занимался.Как восстановить исходные значения после предсказания модели в keras?
Предположим, вы хотите обучить нейронную сеть (NN), используя, например, keras. Как рекомендуется выполнить предыдущий на обучение нормализацию или стандартизацию данных, так, например, при стандартизации:
x_new = (x_old - mean)/standarddev
Затем продолжить обучение (model.fit
в keras) и свести к минимуму потери функция, все очень приятно.
Редактировать: В моем случае у меня есть набор значений от 200 до 400. Это NN с 1 входным, 1 выходным. Я стандартизую, как сказано, входные значения И ожидаемые значения, поэтому NN изучает веса и смещения в стандарте .
Теперь представьте, что у меня есть совершенно новый набор данных значений от 200 до 400, и я хочу предсказать выход, используя NN с предыдущей тренировкой. Вы можете использовать model.predict(x)
в keras, с x
совершенно новый набор значений, которые я получил, стандартизованный (или нормализованный), потому что ваш NN был обучен таким образом. Но тогда, что я получаю после predict
, это массив значений, стандартизированных, , но я хочу сопоставить их с обычным диапазоном от 200 до 400. И я не знаю, как это сделать.
Я знаю, что вы можете продолжить обучение без нормализации или стандартизации, но я прочитал, что если вы стандартизируете (или нормализуете) значения со значениями в единицах вывода единиц (нейронов) (например, между 0 и 1 для сигмоида), тренировка улучшается.
спасибо.
Хорошо - давайте посмотрим, понял ли я: вы получили свои данные, которые вы вкладываете в нейронную сеть, в нормализованной форме - и вы хотите восстановить первоначальные значения? Или вы хотите уничтожить свой выход? И - кстати. каков результат вашей функции? Некоторый код может быть полезен. –
Да, у меня есть массив 'x' и массив' y' выходов со значениями от 200 до 400. Оба они нормализованы и выполняются тренировки. После этого у меня есть новый массив, 'x_2', со значениями от 200 до 400, и я хочу предсказать результат, используя' pred' в keras. Проблема в том, что NN прошли обучение нормализованным образом. Если я нормализую этот новый массив 'x_2', что я получу, назовем его,' y_2' нормализуется, и я хочу _denormalize_, чтобы получить значения между 200 и 400. – David