配置深度学习环境所遇到的Bug

配置深度学习环境所遇到的Bug

    • Python环境配置
    • 安装第三方库遇到的问题
      • python安装pycocotools-2.0.1.tar.gz遇到 ERROR: Command errored out with exit status 1:…的问题
    • 安装opencv-4.3
            • Note:直接从官网下载opencv编译好的.exe,安装,其实就是解压过程,解压后里面有opencv_world430d.dll等文件,按照博客2的方法,成功!简单无BUG,推荐。
      • 下面是我手动自己编译过程及遇到的问题:
        • 问题1: windows下用cmake构建项目时找不到pthread.h头文件
        • 问题2 :安装OpenCV时提示缺少boostdesc_bgm.i文件的问题,
        • 问题3 无法打开包括文件: “features2d/test/test_detectors_invariance.impl.hpp”
        • 问题4 编译中出现:LNK1104 无法打开文件“python38_d.lib”
        • 问题5: opencv编译成功,所有环境配置成功,但是VS项目提示找不到.\opencv\build\install\x64\vc14\bin里面的DLL文件!!!!!!
    • 安装MAKE编译器
    • 安装darknet
      • 利用配好的.sln工程配置DarkNet
  • Pytorch配置问题
    • pytorch出现RuntimeError: CUDA out of memory.
    • 使用torch.view()时出现 view size is not compatible with input tensor's size and stride 的问题
    • RuntimeError: Subtraction, the `-` operator, with a bool tensor is not supported. If you are trying to invert a mask, use the `~` or `logical_not()` operator instead.
  • TensorFlow

Python环境配置

  • python编译polyiou错误:
polyiou.cpp: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
polyiou.cpp(89): error C2059: 语法错误:if”
polyiou.cpp(90): error C2059: 语法错误:if”
polyiou.cpp(91): error C2065: “n1”: 未声明的标识符

解决办法:
用notepad打开polyiou.cpp,编码-转为ANSI编码
如果还是不行下载这个polyiou.cpp文件
https://download.csdn.net/download/qq_26847897/19695040?spm=1001.2014.3001.5503

安装第三方库遇到的问题

python安装pycocotools-2.0.1.tar.gz遇到 ERROR: Command errored out with exit status 1:…的问题

解决办法:

  1. python -m pip install -U pip
  2. pip install wheel
  3. pip install --upgrade setuptools
  4. 在当前的虚拟环境中安装git,安装命令为:
    conda install git
    继续安装pycocotools包,安装命令为:
pip install git+https://github.com/philferriere/cocoapi.git#egg=pycocotools^&subdirectory=PythonAPI

注意: 可能因为文件总量较大,若中途报错远程连接断开并退出(类似fatal: the remote end hung up unexpectedly),可以多尝试几次。

安装opencv-4.3

配置过程主要参考了两篇博客:
博客1,适用于自己手动CMAKE编译opencv
博客2,同样是手动编译,主要参考了编译过程。但是我的编译好之后找不到opencv_world430d.dll,后面的配置过程主要利用编译的文件按照上篇博客配置,成功。

Note:直接从官网下载opencv编译好的.exe,安装,其实就是解压过程,解压后里面有opencv_world430d.dll等文件,按照博客2的方法,成功!简单无BUG,推荐。

下面是我手动自己编译过程及遇到的问题:

  • 1.利用CMAKE生成项目文件
    1. 利用VS对项目文件进行编译生成库文件
    1. 将库文件路径添加进环境变量,将不同文件夹下的opencv_ffmpeg410_64.dll, opencv_world410.dll 和 opencv_world410d.dll 动态链接库分别放入system32与C:\Windows\SysWOW64里

问题1: windows下用cmake构建项目时找不到pthread.h头文件

  • 原因: POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类Unix操作系统(Unix、Linux、Mac OS X等)中,都使用Pthreads作为操作系统的线程。Windows操作系统也有其移植版pthreads-win32 。
  • 解决方法: 到ftp://sourceware.org/pub/pthreads-win32下载Windows平台posix线程支持库,安装即可!
  • 或参考
  • 最后利用这个方法成功了:(第二次编译先不选opencv-contrib,选CUDA与NONFREE,出错之后再把contrib加上),链接为:https://blog.csdn.net/captain_mxd/article/details/78315224

问题2 :安装OpenCV时提示缺少boostdesc_bgm.i文件的问题,

  • 原因:opencv-contrib缺少相关相关文件
    解决方法,参考安装OpenCV时提示缺少boostdesc_bgm.i文件的问题解决方案(附带百度云资源)

问题3 无法打开包括文件: “features2d/test/test_detectors_invariance.impl.hpp”

  • 原因:头文件include地址不对
  • 解决方法参考https://blog.csdn.net/qq_31112205/article/details/105210496

问题4 编译中出现:LNK1104 无法打开文件“python38_d.lib”

  • 原因: 在调试的时候,会出现说找不到python33_d.lib的链接错误,出现这个错误的原因是python_d.lib是库的调试后形式,当我们以debug模式编译工程时,python就用这个lib文件,但是这个文件是不可用的。对于这点,可以强制要求python在任何情况下都是用非调试版本,就可以了。要做到这一点
  • 解决:
    方法一:
    a) 在python目录include文件夹下,打开pyconfig.h,找到如下语句
 # if  def_DEBUG
      #pragmacomment(lib,"python33_d.lib")
#else
      # pragmacomment(lib,"python33.lib")
#endif

将python33_d.lib改成python33.lib//注意更改一下路径,路径不正确会依旧提示找不到lib
b) 找到

#ifdef _DEBUG
 #define Py_DEBUG
#endif

将其用屏蔽
这样就可以了。
https://blog.csdn.net/l153097889/article/details/41208005
方法二:https://blog.csdn.net/loonger_leon/article/details/5862150

问题5: opencv编译成功,所有环境配置成功,但是VS项目提示找不到.\opencv\build\install\x64\vc14\bin里面的DLL文件!!!!!!

解决方法: 重启VS!!!!!!!

安装MAKE编译器

  • 参考博文1安装MinGW
  • 如果出现无法下载情况,参考博文2
  • Note: 如果MinGW无法下载相关文件,https://sourceforge.net/projects/mingw/files/MinGW/Extension/下载,用.7解压,放入C:\MinGW\文件夹下

安装darknet

利用配好的.sln工程配置DarkNet

  • 修改darknet.vcxproj中CUDA对应的版本号,同时修改CUDA 10.1.proj 文件的路径
  • 配置过程参考1
  • 配置过程参考2

Pytorch配置问题

pytorch出现RuntimeError: CUDA out of memory.

参考此链接

使用torch.view()时出现 view size is not compatible with input tensor’s size and stride 的问题

  • 解决方法
    按照提示信息在view()的前面先加.contiguous()
  • 原因分析:
    找到一个比较好的解释是view()的原理是需要Tensor中的元素地址是连续的,但是有可能出现Tensor不连续的情况,所以先用.contiguous()函数将其在内存中变成连续分布

RuntimeError: Subtraction, the - operator, with a bool tensor is not supported. If you are trying to invert a mask, use the ~ or logical_not() operator instead.

  • pytorch版本问题,重新装回1.1版本
  • 或者: 将 1-mask() 改为 ~mask()
  • 参考 https://blog.csdn.net/qq_37643960/article/details/103349535

TensorFlow

  • import tensorflow.contrib.slim as slim
    ModuleNotFoundError: No module named ‘tensorflow.contrib’

slim模块已被弃用,在https://www.pythonheidong.com/blog/article/296246/上找到一位答主给出

javascriptpip install git+https://github.com/adrianc-a/tf-slim.git@remove_contrib

的解决方案,成功地用tf_slim代替tensorflow.contrib.slim

// An highlighted block
var foo = 'bar';

你可能感兴趣的:(python)