J'utilise CoreML Tools pour porter un modèle entraîné créé dans Keras vers iOS.
Le taux de précision s'est considérablement détérioré, alors on m'a dit de mettre à jour vers High Sierra lorsque j'ai essayé de faire MLModel # predict ()
pour le vérifier sur mon PC.
Je n'ai pas pu m'en empêcher, alors je l'ai mis à jour, mais la situation s'est aggravée, alors j'ai rédigé un mémorandum.
coremltools.converters.keras.convert ()
, MLModel # save ()
) fonctionne bien
--Lorsque j'essaye de charger un modèle (coremltools.models.MLModel
), j'obtiens une erreur de version du système d'exploitation.Téléchargez et installez à partir du portail des développeurs d'Apple. Environ 40 minutes?
>>> model = coremltools.models.MLModel('HogeModel.mlmodel')
Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6
Erreur lors du chargement du modèle
Quand je l'ai essayé à la hâte, la même erreur s'est produite pour la conversion du modèle (pour être exact, MLModel # save ()
pour le processus d'enregistrement).
En regardant l'erreur, il semble que CoreML Tools soit destiné à la version fournie avec macOS de Python. http://qiita.com/hatchinee/items/b16ee02b3c93603aee0c
Il semblait que install_name_tool pouvait être utilisé si les détails de l'objet qui lançait l'erreur étaient connus, mais comme je ne comprenais pas bien l'intérieur de CoreML Tools (parce que je n'avais pas le temps), je suis passé à la version fournie de Python (/ usr / bin / python) pour le moment.
Cependant, cela n'a pas fonctionné car les anciens paramètres de Pyenv sont restés, j'ai donc appelé la version fournie avec le chemin complet et réinstallé uniquement pip. C'est difficile donc je dois nettoyer cette zone bientôt.
$ 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)
Si l'environnement pyenv n'était pas sale, pourrais-je simplement passer au système ...
Les bibliothèques dépendantes (coremltools, keras, tensorflow, numpy, h5py) doivent être réinstallées, mais High Sierra ne parvient pas à s'installer avec pip en raison de SIP (sans racine) comme Sierra.
Je n'aime pas ça et je m'enfuis vers la version Homebrew, mais cette fois cela n'arrive pas, alors je m'enfuis avec l'option --user
pour le moment.
$ pip install --user tensorflow coremltools
Si vous utilisez / Users / username / Library / Python / 2.7 / lib / python / site-packages
avec Python 2.7 (pour un usage quotidien) tel que la version Homebrew, la destination d'installation sera affectée, donc Vous devez changer la direction de l'option --user
.
http://qiita.com/ronin_gw/items/cdf8112b61649ca455f5 ou quelque chose?
Dans mon cas, la version Homebrew était plus appropriée pour / usr / local / lib / python2.7 / site-packages
, donc cela devrait être correct pour le moment. .. ..
Le chargement lui-même a réussi, mais l'exécution du raisonnement essentiel a échoué.
>>> result = model.predict({'image': x})
~ Omis ~
Exception: Unable to load CoreML.framework. Cannot make predictions.
Est-ce inutile après tout?
Tout en pensant que cela ne peut pas être aidé car vous utiliserez les fonctions du système d'exploitation, la liaison Python et la liaison 2.7 sont gênantes. .. .. ――Notez que CoreML Tools semble avoir des membres qui sont des méthodes ou assez drastiques même si vous regardez la référence officielle de l'API. ――Je veux essayer toutes les fonctionnalités dès que possible.
Recommended Posts