TypeError: array([[0.46872085, 0.67374235, 1.0218339 , 0.13210179, 0.5440686 , 0.9140083 , 0.58720225, 0.2199381 ]], dtype=float32) ist nicht JSON-serialisierbar
Der oben genannte Fehler wurde ausgelöst, als ich versuchte, eine Liste von Daten an model.predict() zu übergeben, als ich die Antwort im JSON-Format erwartete.
> 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 # Gewichte in neues Modell laden
> 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)
Aber glücklicherweise fand ich den Hinweis zur Behebung des Fehlers, der geworfen wurde. Die Serialisierung der Objekte gilt nur für die folgende Konvertierung. Die Zuordnung sollte wie folgt sein: Objekt - dict, Array - Liste, String - String, Integer - Integer.
Wenn Sie nach oben scrollen, um die Zeilennummer 10 zu sehen, wo diese Zeile des Codes den Ausgabetyp Array-Datentyp erzeugte, wenn Sie versuchen, das Array in das JSON-Format zu konvertieren, ist dies nicht möglich.
Schließlich fand ich die Lösung nur durch die Umwandlung des erhaltenen Ausgabes in den Typ Liste durch folgende Codezeilen
prediction = loaded_model.predict(d)
listtype = prediction.tolist() return jsonify(listtype)
Bhoom! Endlich das erwartete Ergebnis erhalten,