Installer shogun avec python modulaire (OS X Yosemite)

Pour mémoire, j'ai eu du mal à gérer shogun, une bibliothèque qui prend en charge l'apprentissage automatique dans différentes langues, avec python, donc j'écrirai une solution.

référence

site officiel du shogun page shogun Github

Le site officiel est assez difficile à voir et je ne peux pas comprendre diverses choses car il contient des informations sur les versions antérieures, donc je pense qu'il vaut mieux regarder le wiki sur la page Github.

0. Préparation

Avant d'installer shogun, installez ce dont vous avez besoin. Ce à quoi vous devez faire attention ici, c'est la version SWIG. SWIG

Depuis le 06/05/2015, la dernière version est 3.0.5, mais apparemment, lorsque shogun est installé à l'aide de cela, une erreur de segmentation se produit lors de son utilisation ([ici](https://github.com/shogun] -toolbox / shogun / issues / 2313) ou ici a une notation qui semble avoir été résolue, mais dans mon environnement Segfault est apparu) Par conséquent, installez la version 2.x de SWIG à l'avance et rétrogradez-la.

・ Si vous utilisez Homebrew

Tout d'abord, afin que vous puissiez installer la version précédente de SWIG

$brew tap homebrew/versions

Éxécuter. Cela vous permettra de voir les anciennes versions de la formule lorsque vous exécutez la recherche de bière.

$brew search
homebrew/versions/swig2	    homebrew/versions/swig304	swig
$brew install homebrew/versions/swig2

... #Divers sont affichés

$brew link swig2 
#Si vous utilisez déjà swig, brasser le lien--écraser écraser avec swig2

Ceci termine la préparation autour de SWIG.

1. Téléchargez shogun

Il semble que cela puisse être fait avec Homebrew et MacPorts, mais avec Homebrew, l'exemple python n'est pas installé et une erreur de segmentation se produit et il n'est pas utilisable, donc je l'apporte directement depuis Git. Officiellement, il existe un exemple sur MacPorts, mais je ne l'ai pas essayé, alors faites-moi savoir qui l'a essayé.

$git clone https://github.com/shogun-toolbox/shogun.git 
$cd shogun
$mkdir build

Créez un répertoire appelé build in shogn selon la formule.

2. Installation du shogun

Je fais cmake à partir d'ici, mais il y a beaucoup d'options, et je n'ai pas trouvé la page qui le décrit spécifiquement, il est donc préférable d'utiliser l'outil GUI de CMake. Veuillez télécharger CMake.

Démarrez CMake et définissez Où est le code source et Où construire les binaires comme indiqué dans l'image. (Ce qui suit est un exemple de clonage de shogun sur le bureau) スクリーンショット 2015-06-05 15.18.52.png

Cela fera apparaître diverses options, vérifiera ce dont vous avez besoin et exécutera CMake.

Puis démarrez le terminal et

$cd /Users/YOUR_NAME/Desktop/shogun/build
$make && make install

Éxécuter.

$sudo find /usr -name "shogun" -type d

/usr/local/include/shogun
/usr/local/lib/python2.7/site-packages/shogun
/usr/local/share/shogun

Si, l'installation est réussie. Après cela, suivez le site officiel

$ export LD_LIBRARY_PATH=SHOGUN_INSTALL_DIR/lib
$ export PYTHONPATH=SHOGUN_INSTALL_DIR/lib/pythonX.Y/dist-packages/

Entrez s'il vous plait. Je pense que cela dépend de l'emplacement d'installation et du système d'exploitation, mais dans mon cas (et la plupart des personnes qui l'ont installé avec cette procédure)

$ export LD_LIBRARY_PATH=/usr/local/lib
$ export PYTHONPATH=/usr/local/lib/python2.7/site-packages/

Ce sera.

3. Modifiez le chemin de la bibliothèque dont dépend _modshogun.so

Dans cet état, si vous essayez toujours de charger shogun à partir de python, une erreur de segmentation se produira, alors changez le chemin de la bibliothèque référencée par _modshogun.so.

$sudo find /usr -name "*modshogun*"
/usr/local/lib/python2.7/site-packages/_modshogun.so
/usr/local/lib/python2.7/site-packages/modshogun.py
/usr/local/lib/python2.7/site-packages/modshogun.pyc

C'est le top. modshogun est généré par SWIG lors de l'installation de shogun, et je ne suis pas sûr des détails, mais cela ressemble à une abréviation de shogun modulaire. Il semble que diverses classes peuvent être chargées et appelées dynamiquement. Je ne connais pas les détails.

Jetons un coup d'œil aux bibliothèques dont dépend ce _modshogun.

$cd /usr/local/lib/python2.7/site-packages/
$otool -L _modshogun.so
_modshogun.so:
	libshogun.17.dylib (compatibility version 17.0.0, current version 17.1.0)
	/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.6)
	/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
	/usr/local/lib/libglpk.35.dylib (compatibility version 37.0.0, current version 37.0.0)
	/usr/local/opt/arpack/libexec/lib/libarpack.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/usr/local/lib/libopencv_videostab.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libtbb.dylib (compatibility version 0.0.0, current version 0.0.0)
	/usr/local/lib/libopencv_superres.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_stitching.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_contrib.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_nonfree.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_ocl.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_gpu.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_photo.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_objdetect.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_legacy.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_video.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_ml.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_calib3d.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_features2d.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_highgui.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_imgproc.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_flann.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libopencv_core.2.4.dylib (compatibility version 2.4.0, current version 2.4.11)
	/usr/local/lib/libnlopt_cxx.0.dylib (compatibility version 9.0.0, current version 9.2.0)
	/usr/local/lib/libColPack.0.dylib (compatibility version 1.0.0, current version 1.0.0)
	/usr/local/lib/libjson-c.2.dylib (compatibility version 3.0.0, current version 3.1.0)
	/usr/local/opt/libxml2/lib/libxml2.2.dylib (compatibility version 12.0.0, current version 12.2.0)
	/usr/local/lib/libhdf5.9.dylib (compatibility version 10.0.0, current version 10.0.0)
	/usr/local/lib/libsz.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
	/usr/lib/libcurl.4.dylib (compatibility version 7.0.0, current version 8.0.0)
	/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5)
	/usr/local/lib/liblzma.5.dylib (compatibility version 8.0.0, current version 8.1.0)
	/usr/local/lib/libsnappy.1.dylib (compatibility version 4.0.0, current version 4.1.0)
	/usr/local/lib/liblzo2.2.dylib (compatibility version 3.0.0, current version 3.0.0)
	/usr/local/lib/libprotobuf.9.dylib (compatibility version 10.0.0, current version 10.1.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)

Il sort dans une rangée comme celle-ci. Dans mon cas, je l'ai installé avec des options python-modulaire et OpenCV, donc ça ressemble à ceci. Je pense que cette partie changera en fonction de la personne.

Au sommet de cela

 /System/Library/Frameworks/Python.framework/Versions/2.7/Python

Semble être python installé sur OSX depuis le début, et il semble y avoir diverses raisons, mais comme on dit que son utilisation est la cause de l'erreur de segmentation, je vais changer cela.

Vous pouvez changer le chemin des bibliothèques dépendantes de _modshogun.so en utilisant quelque chose appelé install_name_tool.

$install_name_tool -changer le chemin que vous voulez changer le chemin pour changer le nom de la bibliothèque

Avec ce sentiment

$install_name_tool -change /System/Library/Frameworks/Python.framework/Versions/2.7/Python /usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib _modshogun.so

J'ai écrit comme ça. C'est le chemin du changement, mais je l'ai fait en le passant par la bibliothèque partagée de la version de python qui est sortie lorsque shogun a été installé. Je ne sais pas si c'est correct, alors faites-moi savoir qui vous êtes.

4. Essayez de déplacer l'échantillon

Maintenant, essayez de démarrer python une fois.

$python
Python 2.7.10 (default, Jun  3 2015, 16:47:53) 
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import modshogun
>>> import shogun
>>> 

Le défaut de segmentation a disparu. C'était long...

Je déplacerai également l'échantillon. Aller de Git au répertoire shogun cloné

$python examples/undocumented/python_modular/graphical/svm.py

スクリーンショット 2015-06-05 15.54.37.png

Ensuite, il ne devrait y avoir aucun problème ... (Je ne suis pas sûr que ce soit vraiment bien parce que je viens de le faire ...)

À propos, il existe différents exemples dans l'exemple, vous voudrez peut-être jeter un coup d'œil. Il y a une référence sur le site officiel, mais c'est assez approximatif, il peut donc être plus rapide de lire et de comprendre l'exemple de code.

Au fait

Si vous obtenez une erreur de segmentation jusqu'à présent, et si vous voyez quelque chose comme "wrap_delete {un nom de classe}" dans le journal des erreurs et qu'une erreur de segmentation se produit au moment de PyArg_UnpackTuple, cela est dû à la version SWIG. Il y a une forte possibilité de. Vérifiez la version, et s'il s'agit de la série 3.x, cela peut fonctionner si vous la modifiez en série 2.x et l'installez à nouveau.

Recommended Posts

Installer shogun avec python modulaire (OS X Yosemite)
Installez Python 2.7.9 et Python 3.4.x avec pip.
Installez lp_solve sur Mac OSX et appelez-le avec python.
Installez Voluptuous avec Python 2.5
Installez Python avec pyenv
Comment installer Caffe sur OS X avec macports
mac OS X 10.15.x pyenv Python Si vous ne pouvez pas installer
Installez PyQt5 avec homebrew sur Mac OS X Marvericks (10.9.2)
compilateur x86 réalisé avec python
Installer l'environnement Python avec Anaconda
Installer une bibliothèque externe avec Python
Nombre de mots avec Apache Spark et python (Mac OS X)
Tester Python avec Miniconda dans un environnement OS X et Linux avec travis-ci
Créer un environnement python avec pyenv (OS X El Capitan 10.11.3)
Comment installer Theano sur Mac OS X avec homebrew
Installez Python 3.8 sur Ubuntu 18.04 (norme du système d'exploitation)
pyenv-vertualenv n'installe pas correctement la série python3
Installez Python à partir des sources avec Ansible
Installez Python 3.8 sur Ubuntu 20.04 (norme du système d'exploitation)
Installez Sphinx sur MacOSX
Installer le plug-in Python avec Netbeans 8.0.2
Installez mitmproxy sur Mac OS X
Installez Python 3.9 sur Ubuntu 20.04 (norme du système d'exploitation?)
Installez Python 2.7 sur Ubuntu 20.04 (norme du système d'exploitation?)
Installez python avec mac vs code
Installez pgmagick sur Mac OS X 10.9
Premiers pas avec le framework Python Django sur Mac OS X
Installez rapidement OpenCV2.4 (+ python) sur OS X et essayez l'exemple
Installez matplotlib sur OS X El Capitan
Mettez OpenCV dans OS X avec Homebrew et vidéo d'entrée / sortie avec python
Si scipy est python 2.7.8, l'installation de pip trébuche
Construction de l'environnement de développement Mac OS X Yosemite 10.10
Mettez NumPy, SciPy, Matplotlib dans OS X avec Homebrew (à partir de novembre 2015)
Rejoignez un juge en ligne avec Python 3.x
Installation de PIL avec Python 3.x sur macOS
Traitement d'image léger avec Python x OpenCV
Comment installer python3 avec docker centos
[Blender x Python] Commençons avec Blender Python !!
J'ai installé Pygame avec Python 3.5.1 dans l'environnement de pyenv sur OS X
[Ansible] Installer dnf sur Centos7 avec l'interpréteur Python3
Automatisation de l'interface graphique avec le pilote d'application Python x Windows
Je voulais installer Python 3.4.3 avec Homebrew + pyenv
Exécutez Zookeeper x python (kazoo) sur Mac OS X
Mettez Python 2.7.x dans pyenv sur Mac OSX 10.15.5
Installez vim7.3 (+ python2.4) depuis la source (compatible avec Gundo.vim)
Installez Python 3 sur MacOS Catalina (avec Homebrew uniquement)
Shpinx (Python Document Builder) sur Mac OS X
[Blender x Python] Pensez au code avec des symboles
Installez LightGBM dans l'environnement virtualenv OSX
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Installation locale de Python
Jouez avec 2016-Python
AES256 avec python