Ошибка типа: массив ([[0.46872085, 0.67374235, 1.0218339, 0.13210179, 0.5440686, 0.9140083, 0.58720225, 0.2199381]], dtype = float32) не сериализуем в формате JSON
Вышеупомянутая ошибка возникла, когда я попытался передать список данных в model.predict (), когда я ожидал ответа в формате json.
> 1 json_file = open('model.json','r')
> 2 loaded_model_json = json_file.read()
> 3 json_file.close()
> 4 loaded_model = model_from_json(loaded_model_json)
> 5 #load weights into new model
> 6 loaded_model.load_weights("model.h5")
> 7 loaded_model.compile(optimizer='adam', loss='mean_squared_error')
> 8 X = [[874,12450,678,0.922500,0.113569]]
> 9 d = pd.DataFrame(X)
> 10 prediction = loaded_model.predict(d)
> 11 return jsonify(prediction)
Но, к счастью, нашла подсказку, чтобы разрешить ошибку, которая выдает
Если вы прокрутите вверх, чтобы увидеть строку с номером 10pretion =loaded_model.predict (d), где эта строка кода генерировала выходные данные типа массива данных типа, при попытке преобразовать массив в формат json это невозможно
Наконец, я нашел решение, просто преобразовав полученный вывод в список типов с помощью следующих строк кода
предсказание = загруженная_модель.predict (d)
listtype = предсказание.tolist () возвращение jsonify (список)
Bhoom! наконец-то получил ожидаемый результат,
json
модуля. Ноnumpy.ndarray
это не тот тип, которыйjson
знает, как обращаться. Вам нужно будет либо написать свой собственный сериализатор, либо (проще) перейтиlist(your_array)
к тому, что пишет json.