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 erwähnte Fehler wurde ausgelöst, als ich versuchte, die Liste der 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 #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)
Glücklicherweise wurde der Hinweis gefunden, um den Fehler zu beheben, der ausgelöst wurde. Die Serialisierung der Objekte gilt nur für die folgende Konvertierung. Die Zuordnung sollte folgendermaßen erfolgen: Objekt - Diktat Array - Liste Zeichenfolge - Zeichenfolge Ganzzahl - Ganzzahl
Wenn Sie nach oben scrollen, um die Zeilennummer 10 zu sehen, wird die Vorhersage = load_model.predict (d) angezeigt, in der diese Codezeile die Ausgabe des Datentyps Array generiert hat. Wenn Sie versuchen, das Array in das JSON-Format zu konvertieren, ist dies nicht möglich
Schließlich fand ich die Lösung, indem ich die erhaltene Ausgabe durch Befolgen der Codezeilen in die Typliste konvertierte
Vorhersage = geladenes_Modell.Prädikt (d)
Listentyp = Vorhersage.Tolist () Rückgabe jsonify (Listentyp)
Bhoom! endlich die erwartete Leistung bekommen,
json
Modul zu sichern . Istnumpy.ndarray
aber kein Typ, derjson
weiß, wie man damit umgeht. Sie müssen entweder Ihren eigenen Serializer schreiben oder (einfacher) einfach an das übergebenlist(your_array)
, was den JSON schreibt.