Ich verwende CoreML Tools, um ein in Keras erstelltes trainiertes Modell auf iOS zu portieren. Die Genauigkeitsrate hat sich erheblich verschlechtert, daher wurde mir gesagt, ich solle auf High Sierra aktualisieren, als ich versuchte, "MLModel # Predict ()" auszuführen, um es auf meinem PC zu überprüfen. Ich konnte nicht anders, also habe ich es aktualisiert, aber die Situation hat sich verschlechtert, also habe ich ein Memorandum gemacht.
coremltools.converters.keras.convert ()
, MLModel # save ()
) funktioniert einwandfreicoremltools.models.MLModel
) zu laden, wird ein Versionsfehler des Betriebssystems angezeigt.Laden Sie es vom Apple-Entwicklerportal herunter und installieren Sie es. Über 40 Minuten?
>>> model = coremltools.models.MLModel('HogeModel.mlmodel')
Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6
Fehler beim Laden des Modells
Als ich es in Eile versuchte, trat der gleiche Fehler beim Konvertieren des Modells auf (um genau zu sein, "MLModel # save ()" beim Speichern).
Wenn man sich den Fehler ansieht, scheint es, dass CoreML Tools für die von macOS gebündelte Version von Python ist. http://qiita.com/hatchinee/items/b16ee02b3c93603aee0c
Es schien, dass install_name_tool verwendet werden könnte, wenn die Details des Objekts bekannt wären, das den Fehler auslöste. Da ich jedoch das Innere von CoreML Tools nicht gut verstand (weil ich keine Zeit hatte), wechselte ich vorerst zur gebündelten Version von Python (/ usr / bin / python).
Es hat jedoch nicht funktioniert, da die alten Einstellungen von Pyenv beibehalten wurden. Daher habe ich die gebündelte Version mit dem vollständigen Pfad aufgerufen und nur pip neu installiert. Es ist schwer, also muss ich diesen Bereich bald reinigen.
$ which python
/usr/local/bin/python
$ python --version
Python 2.7.13
$ /usr/bin/python --version
Python 2.7.10
$ which pip
/usr/local/bin/pip
$ pip --version
pip 9.0.1 from /Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)
Wenn die Pyenv-Umgebung nicht schmutzig wäre, könnte ich einfach zum System wechseln ...
Abhängige Bibliotheken (Coremltools, Keras, Tensorflow, Numpy, H5Py) müssen neu installiert werden, aber High Sierra kann aufgrund von SIP (rootless) wie Sierra nicht mit Pip installiert werden. Ich mag das nicht und renne zur Homebrew-Version, aber diesmal passiert es nicht, also renne ich vorerst mit der Option "--user" davon.
$ pip install --user tensorflow coremltools
Wenn Sie / Users / Benutzername / Library / Python / 2.7 / lib / python / site-packages
mit Python 2.7 (für den täglichen Gebrauch) wie der Homebrew-Version verwenden, ist das Installationsziel betroffen Sie müssen die Richtung der Option "--user" ändern.
http://qiita.com/ronin_gw/items/cdf8112b61649ca455f5 oder so?
In meinem Fall hat sich die Homebrew-Version an "/ usr / local / lib / python2.7 / site-packages" gewandt, daher sollte dies vorerst in Ordnung sein. .. ..
Das Laden selbst war erfolgreich, aber die Ausführung der wesentlichen Argumentation schlug fehl.
>>> result = model.predict({'image': x})
~ Ausgelassen ~
Exception: Unable to load CoreML.framework. Cannot make predictions.
Ist es doch nutzlos?
――Während ich denke, dass es nicht geholfen werden kann, weil ich die Funktionen des Betriebssystems verwenden werde, ist das Bündeln der Python-Bindung und der 2.7-Bindung problematisch. .. .. ――Beachten Sie, dass CoreML Tools einige Mitglieder zu haben scheint, die Methoden oder ziemlich drastisch sind, selbst wenn Sie sich die offizielle API-Referenz ansehen. ――Ich möchte so schnell wie möglich die volle Funktionalität ausprobieren.
Recommended Posts