** Information au 22 avril 2015 ** ** caffe est mis à jour fréquemment, nous ne pouvons donc pas garantir qu'il fonctionnera maintenant **
La discrimination d'image est effectuée à l'aide du modèle de référence de l'installation. Jusqu'à l'identification d'image à l'aide du modèle de référence bvlc_reference_caffenet.caffemodel et classify.py.
Cadre d'apprentissage profond Un framework très rapide, actif et populaire Voir le fonctionnaire pour plus de détails http://caffe.berkeleyvision.org/
Pour ceux qui veulent voir un peu de performance Caffe Demos Si vous collez l'URL de l'image dans laquelle vous souhaitez classer La classification des images se fait avec le modèle de référence officiel
Je pense que les articles suivants seront également utiles Installer Caffe sur OS X 10.10 (Yosemite) (résolution de problèmes libstdc ++)
・ IMac 27 pouces, fin 2013 ・ Processeur Intel Core i7 à 3,5 GHz 16 Go de mémoire DDR3 à 1600 MHz ・ GPU NVIDIA GeForce GTX 775M 2048 Mo ・ OS MaxOSX10.10.3 yosemite
Python Puisque Anaconda est officiellement recommandé, utilisez Anaconda-2.1.0 Anaconda est une distribution qui introduit divers packages pour créer un environnement de calcul numérique en python. Utilisez ceci
Géré par pyenv Création d'un environnement Python sur un Mac à l'aide de pyenv Veuillez introduire en référence à
Dans cet article, j'ai créé pyenv dans mon répertoire personnel sans utiliser brew. Changement de l'environnement python en Anaconda Il y a 2 séries et 3 séries, mais 2 séries c'est mieux
python
pyenv install anaconda-2.1.0
pyenv global anaconda-2.1.0
pyenv local anaconda-2.1.0
Il devrait déjà avoir été installé dans anaconda-2.1.0, mais vérifions le paquet pour le moment.
python
pip install -r caffe/python/python/requirements.txt
Installons les packages requis sur
CUDA7.0 Introduit 7.0 ou supérieur de NVIDIA Maintenant, il est officiellement publié, donc aucune inscription requise Peut être compilé avec libc ++ s'il est 7.0 ou supérieur NAVIDIA CUDA7 Downloads
Installer avec Homebrew
python
brew install --fresh -vd snappy leveldb gflags glog szip lmdb
Il y avait des informations selon lesquelles cela ne fonctionnerait que si c'était la version 1.55 de Chimata. Cela a fonctionné avec boost1.57 et boost-python1.57, donc c'est comme ça
python
brew install --build-from-source --fresh -vd boost boost-python
N'oubliez pas l'option --with-python Si vous ne l'attachez pas, vous vous fâcherez contre PROTOC au moment de la construction.
python
brew install --build-from-source --with-python --fresh -vd protobuf
python
brew tap homebrew/science
brew install homebrew/science/openblas
** Probablement amélioré avec la mise à jour, donc si vous pouvez exécuter le test sans aucun problème, vous n'avez pas besoin de changer la formule **
Lors d'un test d'exécution libhdf5_hl.8.dylib Peut être affiché s'il est introuvable (à compter du 22 avril 2015)
Apparemment dans hdf5-1.8.14 libhdf5_hl.9.dylib J'ai changé la formule Homebrew pour que Présentez hdf5-1.8.13
python
brew edit hdf5
Changer l'URL et sha1
python
class Hdf5 < Formula
homepage "http://www.hdfgroup.org/HDF5"
--> url "http://www.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8.13/src/hdf5-1.8.13.tar.bz2"
--> sha1 "712955025f03db808f000d8f4976b8df0c0d37b5"
python
brew install --build-from-source --fresh -vd hdf5
Pour le moment, l'installation des bibliothèques dépendantes est terminée.
Installer Caffe sur OS X 10.10 (Yosemite) (résolution de problèmes libstdc ++) Veuillez également vous référer ici
Modifions le Makefile
python
#stdlib=libstdc++À-stdlib=libc++changer en
CXXFLAGS += -stdlib=libc++
LINKFLAGS += -stdlib=libc++
#BLAS_Passez également INCLUDE (il y a deux lignes, passons donc les deux)
BLAS_INCLUDE ?= /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/Headers/
python
#Changer la compilation en clang
# To customize your choice of compiler, uncomment and set the following.
# N.B. the default for Linux is g++ and the default for OSX is clang++
CUSTOM_CXX := /usr/bin/clang++
#Commentez parce que c'est 7 ou plus
# For CUDA < 6.0, comment the *_50 lines for compatibility.
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
#-gencode arch=compute_50,code=sm_50 \
#-gencode arch=compute_50,code=compute_50
#Autour d'Anakonda
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
# ANACONDA_HOME := $(HOME)/anaconda
#ANACONDA parce que c'est compliqué_N'utilisez pas HOME, allez à ↓
PYTHON_INCLUDE := /Users/name/.pyenv/versions/anaconda-2.1.0/include /Users/name/.pyenv/versions/anaconda-2.1.0/include/python2.7 /Users/name/.pyenv/versions/anaconda-2.1.0/lib/python2.7/site-packages/numpy/core/include
# open for OpenBlas
BLAS := open
BLAS_INCLUDE := /usr/local/Cellar/openblas/0.2.14/include
BLAS_LIB := /usr/local/Cellar/openblas/0.2.14/lib
Mettez-le à travers le chemin python
# We need to be able to find libpythonX.X.so or .dylib.
PYTHON_LIB := /Users/name/.pyenv/versions/anaconda-2.1.0/lib
passer le chemin de la lib
# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /Developer/NVIDIA/CUDA-7.0/lib
Dans le premier dossier de caffe
python
make all -j8
make test -j8
-j8 est une option pour paralléliser la compilation. Le nombre est le nombre de parallèles, donc changez-le en fonction de votre environnement. Cela prendra beaucoup de temps pour construire en un seul.
Faites un test
python
make runtest
Après plusieurs tests, les résultats sont affichés pendant un certain temps
python
YOU HAVE 2 DISABLED TESTS
Est affiché, c'est bon
Dans le premier dossier de caffe
python
make pycaffe
Frappé! N'oubliez pas de l'exécuter via python cette fois!
Mettez le chemin dans .bash_profile
python
PYTHONPATH=/Users/name/caffe/À travers python
Si vous obtenez l'erreur suivante lors de la construction
python
python/caffe/_caffe.cpp:1:10: fatal error: 'Python.h' file not found
#include <Python.h> // NOLINT(build/include_alpha)
Ajoutez le chemin suivant à .bash_profile
python
CPLUS_INCLUDE_PATH=/Users/name/.pyenv/versions/anaconda-2.1.0/include/python2.7
Le protocole est requis, alors installez-le en python avec pip
pip install protobuf
Lancez python en mode interactif
python
>>> import caffe
Si tu passes avec ça, c'est ok Dans cet environnement
python
caffe Fatal Python error: PyThreadState_Get: no current thread
Et python a été arrêté de force, j'ai donc passé le chemin suivant avec .bash_profile
python
export DYLD_FALLBACK_LIBRARY_PATH=/Users/name/.pyenv/versions/anaconda-2.1.0/lib:/usr/local/cuda/lib:/usr/local/lib:/usr/local/cuda/lib:/usr/local/lib
Classification facile des images avec Caffe Il y a un article disant, mais la version a changé et ce n'est pas facile. Cette fois, nous allons passer à la première partie de cette page.
python
caffe/models/bvlc_reference_caffenet/readme.md
Selon lui, il semble exister à l'URL suivante http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel Télécharger à partir de
python
caffe/models/bvlc_reference_caffenet/
Enregistrez-le ci-dessous
caffe/data/ilsvrc12/get_ilsvrc_aux.sh Exécutez le script, Obtenez les données associées du modèle.
Comme échantillon Classifions les images de cet éléphant d'Afrique.
python
caffe/python/Elefante.jpg
Enregistrez-le sous.
python
caffe/python/
Appuyez sur la commande suivante avec pour classer
python
python classify.py --raw_scale 255 ./Elefante.jpg ./result.npy
Ce n'est pas grave si vous pouvez l'effacer ici Selon la version
python
File "classify.py", line 137, in <module>
main(sys.argv)
File "classify.py", line 109, in main
channel_swap=channel_swap)
File "/Users/name/caffe/python/caffe/classifier.py", line 34, in __init__
self.transformer.set_mean(in_, mean)
File "/Users/name/caffe/python/caffe/io.py", line 255, in set_mean
raise ValueError('Mean shape incompatible with input shape.')
ValueError: Mean shape incompatible with input shape.
Une erreur peut revenir.
Il semble que l'entrée "café / imagenet / ilsvrc_2012_mean.npy" ne puisse pas être gérée correctement. La cause est utilisée par classify.py
python
caffe/python/caffe/io.py
Lignes 253 à 254
python
if ms != self.inputs[in_][1:]:
raise ValueError('Mean shape incompatible with input shape.')
Cela semble être dans. Apparemment, la partie nouvellement créée ne fonctionne pas bien, je vais donc la réécrire dans l'ancien style Caffe.
python
if ms != self.inputs[in_][1:]:
print(self.inputs[in_])
in_shape = self.inputs[in_][1:]
m_min, m_max = mean.min(), mean.max()
normal_mean = (mean - m_min) / (m_max - m_min)
mean = resize_image(normal_mean.transpose((1,2,0)),in_shape[1:]).transpose((2,0,1)) * (m_max - m_min) + m_min
#raise ValueError('Mean shape incompatible with input shape.')
Le même problème est soulevé dans l'URL suivante http://stackoverflow.com/questions/28692209/using-gpu-despite-setting-cpu-only-yielding-unexpected-keyword-argument
Après le changement, utilisez à nouveau classify.py
Loading file: ./Elefante.jpg
Classifying 1 inputs.
Done in 0.90 s.
Saving results into ./result.npy
Est ok. Le résultat de la détermination est enregistré dans result.pny.
À propos du contenu de result.npy Classification facile des images avec Caffe Publié dans
python
show_result.py
Vous pouvez voir le résultat numériquement en utilisant.
python
$ python show_result.sh ../data/ilsvrc12/synset_words.txt result.npy
1 | n02504458 African elephant, Loxodonta africana | 81.2%
2 | n01871265 tusker | 14.9%
3 | n02504013 Indian elephant, Elephas maximus | 3.3%
81% de chance d'éléphant d'Afrique Grande créature avec des crocs à 14% 3% sont des éléphants indiens A été jugé
Recommended Posts