【问题标题】:Caffe install getting ImportError: DLL load failed: The specified module could not be foundCaffe 安装出现 ImportError:DLL 加载失败:找不到指定的模块
【发布时间】:2016-01-18 11:00:24
【问题描述】:

我正在尝试编译和运行发布在here 的 sn-ps,它基本上可以让我可视化网络内部结构(特征图)。
我已经使用caffe-windows 分支成功编译了caffepycaffe,并且我已经将caffe 文件夹复制到了T:\Anaconda\Lib\site-packages 文件夹中。 然而,当我尝试在 jupyter notebook 中运行这段代码时:

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

我收到以下错误:

---------------------------------------------------------------------------
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.

这里有什么问题?

注意事项:
我正在使用Anaconda2-2.4.1-Windows-x86_64.exe

【问题讨论】:

  • 因为您手动将caffe_root + '/python' 添加到您的path 我认为您不需要将模块复制到site_packages
  • @Shai:谢谢,但是第一个链接没有什么特别之处!找不到任何信息!所以你的意思是它是多余的吗?如果是这样,为什么首先要这样声明?

标签: python-2.7 anaconda caffe jupyter-notebook pycaffe


【解决方案1】:

您很可能没有看到更具体的依赖问题(Protobuf / OpenCV)。首先尝试使用C++ API 加载示例并确保所有DLL 的加载。然后,您可以更自信地将范围缩小到 Python 方面。我根据您正在使用的分支推荐更新的 windows caffe 指令:

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

如上所述,我必须进行完整的重建(请注意,使用 NuGet 更容易找到一些依赖项)。此外,请留意上述博客中各种 3rdParty.zip 文件中的正确 protobuf 二进制文件。

如果您可以使用 Caffe 的快照版本并且不需要修改项目本身,则以下二进制文件更易于安装和工作:

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

【讨论】:

  • 谢谢,我会检查这个报告。虽然我很确定 OpenCV 一定很好,但我不确定 proto buff!)
  • 你是对的,缺少 protbuf,我不得不为 anaconda 编译 protobuf 包,然后错误就消失了;)顺便说一句,这行的含义是什么?我对python不好,再次感谢`!../scripts/download_model_binary.py ../models bvlc_reference_caffenet`是!操作员还是什么?
  • 我认为这是启动进程的 Jupyter 语法。也许试试 Python subprocess 或者只是手动运行它:)
猜你喜欢
  • 2016-10-02
  • 1970-01-01
  • 2020-12-01
  • 2013-12-10
  • 2021-06-30
  • 2016-08-19
  • 2016-08-22
  • 2018-10-23
相关资源
最近更新 更多