2017-08-29 4 views
0

Ich versuche, die Keras OCR example in ein CoreML-Modell zu konvertieren.Alternative zu Lambda-Schicht in Keras

Ich kann schon mein leicht modifiziertes Modell trainieren und alles sieht in Python gut aus. Aber jetzt möchte ich das Modell in CoreML konvertieren, um es meine iOS App zu verwenden.

Das Problem ist, dass das CoreML-Dateiformat keine Lambda-Layer unterstützen kann. Ich bin kein Experte in diesem Bereich, aber soweit ich verstehe, wird die Lambda-Schicht hier verwendet, um den Verlust mit ctc_batch_cost() zu berechnen. Die Ebene wird um die Linie 464 herum erzeugt. Ich nehme an, dass dies für eine höhere Genauigkeit als die "eingebauten" Verlustfunktionen verwendet wird.

Gibt es eine Möglichkeit, die Modellerstellung so umzuschreiben, dass sie zu dem von CoreML unterstützten Layer passt? Ich habe keine Ahnung, welcher Ausgabe-Layer-Typ für das Modell verwendet werden soll.

Antwort

1

Cost-Funktionen sind normalerweise nicht im CoreML-Modell enthalten, da CoreML nur Rückschlüsse auf die Inferenz macht, während Kostenfunktionen für das Training verwendet werden. Entfernen Sie diese Schicht also, bevor Sie das Modell exportieren, und Sie sollten gut unterwegs sein.

+0

Vielen Dank! CoreML akzeptiert nun das Modell an diesem Punkt. Ich laufe ein paar Zeilen später in den nächsten Fehler, aber ich sehe, ob ich damit umgehen kann :) – mangerlahn