значения predict() равны нулю или NaN
У меня модель ГРУ
GRU = keras.models.Sequential([keras.layers.GRU(32),
keras.layers.Dense(32, activation= 'relu'),
keras.layers.Dense(1, activation=None)])
GRU.compile(loss="mae", optimizer="adam")
resultsGRU = GRU.fit_generator(generator = train, validation_data = train, epochs = 3, verbose= 1, shuffle = False)
Если я конвертирую данные поезда в массив numpy, я вижу, что у меня нет нулевых значений или значений Nan (раньше я также опускал значения)
trainArray= np.array(train)
print(trainArray)
Я скопировал только часть массива, чтобы вы могли видеть значения:
[[array([[[-0.86286026, 0.51805955, 1.0427724 , ..., 0.27464896,
0.08823532, -1.1183959 ],
[-0.3186916 , 0.00295895, 0.740636 , ..., 0.27464896,
0.08823532, -1.1304985 ],
[-0.31057638, 0.00295895, 0.5593542 , ..., 0.27464896,
-0.5521559 , -1.1183959 ],
...,
Если я распечатаю результаты ГРУ
print(resultsGRU.history.values())
я получил
dict_values([[0.597104012966156, 0.5652544498443604, 0.5574262142181396], [0.6241905093193054, 0.6183988451957703, 0.6134349703788757]])
Затем я использую прогноз, но значения возвращаются 0
predictGRU = GRU.predict(test)
print(predictGRU)
[0. 0. 0. ... 0. 0. 0.]
Затем я сохраняю эту модель и использую ее для API со значениями NaN.
В чем проблема? Как заставить модель предсказывать другое разумное значение?
Я также использую метрики позже
print(metrics.mean_absolute_error(test, predictGRU))
print(metrics.mean_squared_error(test, predictGRU))
print(metrics.explained_variance_score(test, predictGRU))
И у меня нормальные цифры
0.6471065
0.50334525
0.23076766729354858
Я не знаю, как исправить это самостоятельно.