【日常】Caffe编译"gpu/mxGPUArray.h" Not Found错误解决

使用微软的caffe版本(https://github.com/Microsoft/caffe)时遇到了"gpu/mxGPUArray.h" Not Found问题,排查了一下,发现是我装的matlab版本(2016)太新了,修改CommonSettings.props配置如下:


    <PropertyGroup Condition="'$(MatlabSupport)'=='true'">
        <MatlabDir>E:\02_software\01_develop\matlab</MatlabDir>
        <LibraryPath>$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)</LibraryPath>
        <IncludePath>$(MatlabDir)\extern\include;$(MatlabDir)\toolbox\distcomp\gpu\extern\include;$(IncludePath)</IncludePath>  <!-- 增加了一个include路径 -->
    </PropertyGroup>

具体排查过程,全局查找mxGPUArray.h,发现在$(MatlabDir)\toolbox\distcomp\gpu\extern\include路径下,遂在配置中加上。估计是matlab新版本中gpu文件夹已从\extern\include独立出来了。



最后安利一下微软封装的caffe,安装的确省事,基本不怎么用装其他依赖。

### 关于 `ModuleNotFoundError: No module named 'caffe._caffe'` 的解决方案 #### 错误原因分析 此错误通常发生在尝试导入 Caffe 模块时,由于 `_caffe.so` 或 `_caffe.pyd` 文件缺失或路径配置不当引起的。以下是可能的原因: 1. **Caffe 编译失败**:如果 Caffe 源码未成功编译,则不会生成必要的二进制文件(如 `_caffe.so` 或 `_caffe.pyd`),从而导致无法加载模块[^1]。 2. **Python 路径问题**:即使编译完成,如果没有将生成的 Python 接口目录正确添加到系统的 PYTHONPATH 中,也会引发此类错误[^2]。 3. **依赖库缺失**:某些系统级依赖项(例如 BLAS、CUDA、cuDNN 等)未正确安装可能导致编译过程中出现问题,进而影响最终模块的可用性[^3]。 --- #### 解决方案 ##### 方法一:重新编译 Caffe 并验证生成的模块 确保按照官方文档中的说明正确构建 Caffe。对于 Windows 用户,可以参考以下步骤: 1. 使用 Visual Studio 和 CMake 配置并生成项目文件。 2. 执行完整的编译流程,在完成后检查是否存在 `_caffe.pyd` 文件。它应该位于类似于 `build/pycaffe/_caffe.pyd` 的位置[^1]。 如果发现缺少该文件,请仔细排查是否有任何编译警告或错误日志提示,并修复相应的问题后再试一次。 ##### 方法二:设置正确的环境变量 确认已将包含 `_caffe.pyd` 的目录加入到当前会话的 PATH 变量以及全局范围内的 PYTHONPATH 设置里去。可以通过命令行执行如下操作来临时调整这些值用于调试目的: ```bash set PYTHONPATH=D:\projects\caffe2\build\pycaffe;%PYTHONPATH% ``` 另外也可以通过修改启动脚本或者 IDE 配置持久化这一更改。 ##### 方法三:利用预构建包简化部署过程 考虑到手动搭建开发环境较为复杂耗时,推荐考虑采用已经打包好的发行版本代替自行编译的方式获取所需功能支持。比如借助 Conda 渠道快速建立隔离的工作区并拉取对应平台上的稳定镜像资源: ```bash conda create -n caffe_env python=3.6 conda activate caffe_env conda install -c anaconda caffe-cpu # 如果不需要 GPU 加速的话可以选择这个选项 # 或者针对 NVIDIA 显卡启用 CUDA 支持的情况运行下面这条语句替代上面那条 conda install -c anaconda caffe-gpu ``` 这样做的好处是可以跳过繁琐的手动配置环节直接进入实验阶段[^3]。 --- ### 示例代码片段 假设一切正常之后再次测试能否顺利引入核心组件: ```python try: import caffe except ImportError as e: print(f"Caffe not found! Error message is {e}") else: print("Successfully imported caffe!") ``` ---
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值