神经网络学习小记录-番外篇——常见问题汇总

神经网络学习小记录-番外篇——常见问题汇总

前言 问题汇总 1、下载问题 2、环境配置问题 3、shape不匹配问题 a、训练时shape不匹配问题 b、预测时shape不匹配问题 4、no module问题 5、显存问题 6、训练问题 7、乱七八糟的问题

前言

搞个问题汇总吧,不然一个一个解释也挺难的。
在这里插入图片描述

问题汇总

1、下载问题

问:up主,可以给我发一份代码吗,代码在哪里下载啊?
答:Github上的地址就在视频简介里。复制一下就能进去下载了。

问:up主,为什么我下载的代码里面,model_data下面没有.pth或者.h5文件?
答:我一般会把权值上传到百度网盘,在GITHUB的README里面就能找到

问:up主,为什么我下载的代码提示压缩包损坏?
答:重新去Github下载。

2、环境配置问题

问:为什么我安装了tensorflow-gpu但是却没用利用GPU进行训练呢?
答:有没有用到GPU应该看终端里的提示,不要看任务管理器。

问:你的代码某某某版本的tensorflow和pytorch能用嘛?
答:最好按照我推荐的配置,配置教程也有!其它版本的我没有试过

问:up主,为什么我按照你的环境配置后还是不能使用?
答:请把你的GPU、CUDA、CUDNN、TF版本以及PYTORCH版本私聊告诉我。

问:出现如下错误

Traceback (most recent call last):
  File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
 from tensorflow.python.pywrap_tensorflow_internal import *
File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module>
pywrap_tensorflow_internal = swig_import_helper()
  File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\imp.py", line 243, in load_modulereturn load_dynamic(name, filename, file)
File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\imp.py", line 343, in load_dynamic
    return _load(spec)
ImportError: DLL load failed: 找不到指定的模块。

答:如果没重启过就重启一下,否则重新按照步骤安装,还无法解决则把你的GPU、CUDA、CUDNN、TF版本以及PYTORCH版本私聊告诉我。

3、shape不匹配问题

a、训练时shape不匹配问题

问:up主,为什么运行train.py会提示shape不匹配啊?
答:因为你训练的种类和原始的种类不同,网络结构会变化,所以最尾部的shape会有少量不匹配。

b、预测时shape不匹配问题

问:为什么我运行predict.py会提示我说shape不匹配呀。
在Pytorch里面是这样的:

在这里插入图片描述
在Keras里面是这样的:
在这里插入图片描述

答:原因主要有仨:
1、在ssd、FasterRCNN里面,可能是train.py里面的num_classes没改。
2、model_path没改。
3、classes_path没改。
请检查清楚了!确定自己所用的model_path和classes_path是对应的!训练的时候用到的num_classes或者classes_path也需要检查!

4、no module问题

问:为什么提示说no module name utils.utils(no module name nets.yolo、no module name nets.ssd等一系列问题)啊?
答:根目录不对,查查相对目录的概念。查了基本上就明白了。

问:为什么提示说no module name matplotlib(no module name PIL)?
答:打开命令行安装就好。pip install matplotlib

5、显存问题

问:为什么我运行train.py下面的命令行闪的贼快,还提示OOM啥的?
答:爆显存了,可以改小batch_size,如果batch_size=1才能运行的话,那么直接换网络吧,SSD的显存占用率是最小的,建议用SSD;
2G显存:SSD
4G显存:YOLOV3 Faster RCNN
6G显存:YOLOV4 Retinanet M2det Efficientdet等
8G+显存:随便选吧

6、训练问题

问:为什么要冻结训练和解冻训练呀?
答:这是迁移学习的思想,因为神经网络主干特征提取部分所提取到的特征是通用的,我们冻结起来训练可以加快训练效率,也可以防止权值被破坏。

问:为什么我的LOSS一直不下降呀?
答:主要有五:
1、 数据集过少,小于500的自行考虑增加数据集。
2、 是否解冻训练。
3、 如果是yoloV4可以考虑关闭mosaic,mosaic不适用所有的情况。
4、 网络不适应,比如SSD不适合小目标,因为先验框固定了。
5、 不同网络的LOSS不同,LOSS只是一个参考指标,用于查看网络是否收敛,而非评价网络好坏,我的yolo代码都没有归一化,所以LOSS值看起来比较高,LOSS的值不重要,重要的是是否收敛!

问:能不能训练灰度图啊?
答:可以尝试一下在get_random_data里面将Image.open后的结果转换成RGB,预测的时候也这样试试。(仅供参考)

问:我已经训练过几个世代了,能不能从这个基础上继续开始训练
答:可以,你在训练前,和载入预训练权重一样载入训练过的权重就行了。

7、乱七八糟的问题

问:能不能说说怎么绘制PR曲线啥的呀。
答:可以看mAP视频,结果里面有PR曲线。

问:怎么用摄像头检测呀?
答:基本上所有目标检测库都有video.py可以进行摄像头检测,也有视频详细解释了摄像头检测的思路。

问:ubuntu下可以用吗?
答:可以。

问:怎么进行多GPU训练?
答:这个直接百度就好了,实现并不复杂。

问:为什么提示TypeError: cat() got an unexpected keyword argument ‘axis’,Traceback (most recent call last),AttributeError: ‘Tensor’ object has no attribute ‘bool’?
答:这是版本问题,建议使用torch1.2以上版本

其它有很多稀奇古怪的问题,很多是版本问题,建议按照我的视频教程安装Keras和tensorflow。比如装的是tensorflow2,就不用问我说为什么我没法运行Keras-yolo啥的。那是必然不行的。

来源url
栏目