2016-01-18 1 views
0

Je suis en train de compiler et d'exécuter les extraits publiés here, qui va essentiellement me permettre de visualiser les composants internes du réseau (feature maps).
J'ai compilé avec succès caffe et pycaffe en utilisant la branche caffe-windows, Et j'ai copié le dossier caffe, dans le dossier T:\Anaconda\Lib\site-packages. Pourtant, encore, lorsque je tente de lancer ce bout de code dans le cahier de jupyter:Caffe install getting ImportError: Le chargement de la DLL a échoué: Le module spécifié est introuvable

import numpy as np 
import matplotlib.pyplot as plt 
%matplotlib inline 

# Make sure that caffe is on the python path: 
caffe_root = 'TC:/Caffe/' # this file is expected to be in {caffe_root}/examples 
import sys 
sys.path.insert(0, caffe_root + 'python') 

import caffe 

plt.rcParams['figure.figsize'] = (10, 10) 
plt.rcParams['image.interpolation'] = 'nearest' 
plt.rcParams['image.cmap'] = 'gray' 

import os 
if not os.path.isfile(caffe_root + 'models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel'): 
    print("Downloading pre-trained CaffeNet model...") 
    !../scripts/download_model_binary.py ../models/bvlc_reference_caffenet 

Je reçois l'erreur suivante:

--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-1-e7a8ec94e861> in <module>() 
     8 sys.path.insert(0, caffe_root + 'python') 
     9 
---> 10 import caffe 

L:\Anaconda2\lib\site-packages\caffe\__init__.py in <module>() 
----> 1 from .pycaffe import Net, SGDSolver 
     2 from ._caffe import set_mode_cpu, set_mode_gpu, set_device, Layer, get_solver 
     3 from .proto.caffe_pb2 import TRAIN, TEST 
     4 from .classifier import Classifier 
     5 from .detector import Detector 

L:\Anaconda2\lib\site-packages\caffe\pycaffe.py in <module>() 
    11 import numpy as np 
    12 
---> 13 from ._caffe import Net, SGDSolver 
    14 import caffe.io 
    15 

ImportError: DLL load failed: The specified module could not be found. 

Quel est le problème ici?

Notes:
J'utilise Anaconda2-2.4.1-Windows-x86_64.exe

+0

voir: http://stackoverflow.com/questions/34763915/pycaffe-installation-in-windows – Shai

+0

puisque vous ajoutez manuellement 'caffe_root + '/ python'' dans votre' path', je ne pense pas que vous ayez besoin de copier le module '' site_packages'. – Shai

+0

@Shai: Merci, mais il n'y a rien de spécial sur le premier lien! couldnt trouver aucune information dans cela! alors vous voulez dire est-ce redondant? Si oui, pourquoi en premier lieu est-il déclaré comme ça? – Breeze

Répondre

1

Il y a probablement d'un problème de dépendance plus spécifique que vous ne voyez pas (Protobuf/OpenCV). Essayez d'abord d'utiliser le C++ API pour charger un exemple et assurez-vous que toutes les DLL sont chargées. Ensuite, vous pouvez plus en toute confiance affiner les choses du côté de Python. Je recommande les plus récentes instructions fenêtres caffe base de la branche que vous utilisez:

https://initialneil.wordpress.com/2015/01/11/build-caffe-in-windows-with-visual-studio-2013-cuda-6-5-opencv-2-4-9/

je devais faire une reconstruction complète comme détaillé ci-dessus (notez que certaines dépendances sont plus faciles à trouver avec NuGet). Soyez également à l'affût des bons binaires protobuf dans divers fichiers 3rdParty.zip à travers le blog ci-dessus.

Si vous êtes d'accord avec une version instantanée de Caffe et vous n'avez pas besoin de modifier le projet lui-même, les binaires suivants sont beaucoup plus facile à installer et à faire fonctionner les:

https://initialneil.wordpress.com/2015/07/15/caffe-vs2013-opencv-in-windows-tutorial-i/

+0

Merci, je vais vérifier ce rapport. Bien que je sois assez sûr que l'OpenCV soit correct, je ne suis pas sûr du proto.) – Breeze

+1

vous aviez raison, protbuf manquait, j'ai dû compiler le paquet protobuf pour anaconda et l'erreur est partie;) par la façon dont le sens de cette ligne? Je ne suis pas bon avec python, Merci encore '! ../ scripts/download_model_binary.py ../models bvlc_reference_caffenet' est '!' Un opérateur ou quelque chose? – Breeze

+1

Je pense que c'est la syntaxe Jupyter pour démarrer un processus. Peut-être essayer Python 'subprocess' ou juste l'exécuter manuellement :) – crizCraig