** Informationen vom 22. April 2015 ** ** caffe wird regelmäßig aktualisiert, daher können wir nicht garantieren, dass es jetzt funktioniert **
Bis zur Bildidentifikation mit dem Referenzmodell bvlc_reference_caffenet.caffemodel und classify.py.
Deep Learning Framework Ein sehr schneller, aktiver und beliebter Rahmen Einzelheiten erfahren Sie beim Beamten http://caffe.berkeleyvision.org/
Für diejenigen, die ein wenig Leistung sehen wollen Caffe Demos Wenn Sie die URL des Bildes einfügen, in das Sie klassifizieren möchten Die Bildklassifizierung erfolgt mit dem offiziellen Referenzmodell
Ich denke, die folgenden Artikel werden auch hilfreich sein Installieren Sie Caffe unter OS X 10.10 (Yosemite) (libstdc ++ - Problemlösung)
・ IMac 27 Zoll, Ende 2013 ・ CPU 3,5 GHz Intel Core i7 16 GB 1600 MHz DDR3 ・ GPU NVIDIA GeForce GTX 775M 2048 MB ・ OS MaxOSX10.10.3 Yosemite
Python Da Anaconda offiziell empfohlen wird, verwenden Sie Anaconda-2.1.0 Anaconda ist eine Distribution, die verschiedene Pakete einführt, um eine numerische Berechnungsumgebung in Python zu erstellen. Benutze das
Verwaltet von pyenv Erstellen einer Python-Umgebung auf einem Mac mit pyenv Bitte mit Bezug auf einführen
In diesem Artikel habe ich pyenv in meinem Home-Verzeichnis erstellt, ohne Brew zu verwenden. Die Python-Umgebung wurde in Anaconda geändert Es gibt 2 Serien und 3 Serien, aber 2 Serien sind besser
python
pyenv install anaconda-2.1.0
pyenv global anaconda-2.1.0
pyenv local anaconda-2.1.0
Es sollte bereits in anaconda-2.1.0 installiert sein, aber lassen Sie uns das Paket vorerst überprüfen.
python
pip install -r caffe/python/python/requirements.txt
Lassen Sie uns die erforderlichen Pakete unter installieren
CUDA7.0 Einführung von 7.0 oder höher von NVIDIA Jetzt ist es offiziell freigegeben, sodass keine Registrierung erforderlich ist Kann mit libc ++ kompiliert werden, wenn es 7.0 oder höher ist NAVIDIA CUDA7 Downloads
Mit Homebrew installieren
python
brew install --fresh -vd snappy leveldb gflags glog szip lmdb
Es gab Informationen, dass es nicht funktionieren würde, wenn es nicht in Chimata Version 1.55 wäre. Es hat mit boost1.57 und boost-python1.57 funktioniert, also ist es so wie es ist
python
brew install --build-from-source --fresh -vd boost boost-python
Denken Sie daran, die Option --with-python zu verwenden Wenn Sie es nicht anhängen, werden Sie beim Erstellen wütend auf PROTOC.
python
brew install --build-from-source --with-python --fresh -vd protobuf
python
brew tap homebrew/science
brew install homebrew/science/openblas
** Wahrscheinlich mit dem Update verbessert. Wenn Sie also problemlos testen können, müssen Sie die Formel nicht ändern **
Bei einem Lauftest libhdf5_hl.8.dylib Kann angezeigt werden, wenn es nicht gefunden wird (Stand 22. April 2015)
Anscheinend in hdf5-1.8.14 libhdf5_hl.9.dylib Ich habe dort die Homebrew-Formel geändert, damit Führen Sie hdf5-1.8.13 ein
python
brew edit hdf5
URL und sha1 ändern
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
Die Installation der abhängigen Bibliotheken ist vorerst abgeschlossen.
Installieren Sie Caffe unter OS X 10.10 (Yosemite) (libstdc ++ - Problemlösung) Bitte beachten Sie auch hier
Lassen Sie uns das Makefile ändern
python
#stdlib=libstdc++Zu-stdlib=libc++ändern
CXXFLAGS += -stdlib=libc++
LINKFLAGS += -stdlib=libc++
#BLAS_Übergeben Sie auch INCLUDE (es gibt zwei Zeilen, also lassen Sie uns beide übergeben)
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
#Ändern Sie die Kompilierung in "Klirren"
# 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++
#Kommentiere aus, weil es 7 oder mehr ist
# 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
#Rund um Anakonda
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
# ANACONDA_HOME := $(HOME)/anaconda
#Es ist kompliziert, also ANA CONDA_Verwenden Sie HOME nicht, gehen Sie zu ↓
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
Setzen Sie es durch den Python-Pfad
# We need to be able to find libpythonX.X.so or .dylib.
PYTHON_LIB := /Users/name/.pyenv/versions/anaconda-2.1.0/lib
Übergeben Sie den lib-Pfad
# 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
Im ersten Ordner von caffe
python
make all -j8
make test -j8
-j8 ist eine Option zum Parallelisieren der Kompilierung. Die Anzahl ist die Anzahl der Parallelen. Ändern Sie sie also entsprechend der Umgebung. Ich denke, es wird lange dauern, bis sie als einzelne erstellt wird.
Mach einen Test
python
make runtest
Nach verschiedenen Testergebnissen werden für eine Weile ausgegeben
python
YOU HAVE 2 DISABLED TESTS
Wird angezeigt, ist es okay
Im ersten Ordner von caffe
python
make pycaffe
Schlagen! Vergessen Sie nicht, es diesmal über Python auszuführen!
Fügen Sie den Pfad in .bash_profile ein
python
PYTHONPATH=/Users/name/caffe/Durch Python
Wenn beim Erstellen der folgende Fehler angezeigt wird
python
python/caffe/_caffe.cpp:1:10: fatal error: 'Python.h' file not found
#include <Python.h> // NOLINT(build/include_alpha)
Fügen Sie den folgenden Pfad zu .bash_profile hinzu
python
CPLUS_INCLUDE_PATH=/Users/name/.pyenv/versions/anaconda-2.1.0/include/python2.7
Protoc ist erforderlich, installieren Sie es also in Python mit pip
pip install protobuf
Starten Sie Python im interaktiven Modus
python
>>> import caffe
Wenn Sie damit bestehen, ist es in Ordnung In dieser Umgebung
python
caffe Fatal Python error: PyThreadState_Get: no current thread
Und Python wurde gewaltsam beendet, also habe ich den folgenden Pfad mit .bash_profile übergeben
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
Einfache Bildklassifizierung mit Caffe Es gibt einen Artikel, der sagt, aber die Version hat sich geändert und es ist nicht einfach. Dieses Mal gehen wir zum ersten Teil dieser Seite.
python
caffe/models/bvlc_reference_caffenet/readme.md
Demnach scheint es unter der folgenden URL zu existieren http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel Herunterladen von
python
caffe/models/bvlc_reference_caffenet/
Speichern Sie es unten
caffe/data/ilsvrc12/get_ilsvrc_aux.sh Führen Sie das Skript aus, Holen Sie sich die zugehörigen Daten des Modells.
Als Beispiel Lassen Sie uns die Bilder dieses afrikanischen Elefanten klassifizieren.
python
caffe/python/Elefante.jpg
Speichern Sie es als.
python
caffe/python/
Drücken Sie den folgenden Befehl mit, um zu klassifizieren
python
python classify.py --raw_scale 255 ./Elefante.jpg ./result.npy
Es ist in Ordnung, wenn Sie es hier löschen können Abhängig von der 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.
Fehler kann zurückkommen.
Es scheint, dass die Eingabe 'caffe / imagenet / ilsvrc_2012_mean.npy' nicht gut verarbeitet werden kann. Die Ursache wird von classify.py verwendet
python
caffe/python/caffe/io.py
Zeilen 253-254
python
if ms != self.inputs[in_][1:]:
raise ValueError('Mean shape incompatible with input shape.')
Es scheint in zu sein. Anscheinend funktioniert der neu erstellte Teil nicht gut, also werde ich ihn im alten Caffe-Stil umschreiben.
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.')
Das gleiche Problem wird in der folgenden URL angesprochen http://stackoverflow.com/questions/28692209/using-gpu-despite-setting-cpu-only-yielding-unexpected-keyword-argument
Verwenden Sie nach der Änderung erneut classify.py
Loading file: ./Elefante.jpg
Classifying 1 inputs.
Done in 0.90 s.
Saving results into ./result.npy
Ist in Ordnung. Das Bestimmungsergebnis wird in result.pny gespeichert.
Über den Inhalt von result.npy Einfache Bildklassifizierung mit Caffe Veröffentlicht in
python
show_result.py
Sie können das Ergebnis numerisch anzeigen, indem Sie verwenden.
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% Chance auf afrikanischen Elefanten Große Kreatur mit Reißzähnen bei 14% 3% sind indische Elefanten Wurde beurteilt
Recommended Posts