|
1 | | -## 常见的问题汇总: |
2 | | - |
3 | | -问:up主,可以给我发一份代码吗,代码在哪里下载啊? |
4 | | -答:Github上的地址就在视频简介里。复制一下就能进去下载了。 |
5 | | - |
6 | | -问:为什么我安装了tensorflow-gpu但是却没用利用GPU进行训练呢? |
7 | | -答:有没有用到GPU应该看终端里的提示,不要看任务管理器。 |
8 | | - |
9 | | -问:up主,为什么我下载的代码里面,model_data下面没有.pth或者.h5文件? |
10 | | -答:我一般会把权值上传到百度网盘,在GITHUB的README里面就能找到。 |
11 | | - |
12 | | -问:up主,为什么运行train.py会提示shape不匹配啊? |
13 | | -答:因为你训练的种类和原始的种类不同,网络结构会变化,所以最尾部的shape会有少量不匹配。 |
14 | | - |
15 | | -问:为什么提示说no module name utils.utils(no module name nets.yolo、no module name nets.ssd等一系列问题)啊? |
16 | | -答:根目录不对,查查相对目录的概念。查了基本上就明白了。 |
17 | | - |
18 | | -问:为什么提示说no module name matplotlib(no module name PIL)? |
19 | | -答:打开命令行安装就好。pip install matplotlib |
20 | | - |
21 | | -问:为什么我运行predict.py会提示我说shape不匹配呀。(为什么我训练完了不能预测啊) |
22 | | -答:原因主要有仨: |
| 1 | +# 问题汇总 |
| 2 | + |
| 3 | +## 1、下载问题 |
| 4 | +**问:up主,可以给我发一份代码吗,代码在哪里下载啊? |
| 5 | +答:Github上的地址就在视频简介里。复制一下就能进去下载了。** |
| 6 | + |
| 7 | +**问:up主,为什么我下载的代码里面,model_data下面没有.pth或者.h5文件? |
| 8 | +答:我一般会把权值上传到百度网盘,在GITHUB的README里面就能找到** |
| 9 | + |
| 10 | +**问:up主,为什么我下载的代码提示压缩包损坏? |
| 11 | +答:重新去Github下载。** |
| 12 | + |
| 13 | +## 2、环境配置问题 |
| 14 | +**问:为什么我安装了tensorflow-gpu但是却没用利用GPU进行训练呢? |
| 15 | +答:有没有用到GPU应该看终端里的提示,不要看任务管理器。** |
| 16 | + |
| 17 | +**问:你的代码某某某版本的tensorflow和pytorch能用嘛? |
| 18 | +答:最好按照我推荐的配置,配置教程也有!其它版本的我没有试过** |
| 19 | + |
| 20 | +**问:up主,为什么我按照你的环境配置后还是不能使用? |
| 21 | +答:请把你的GPU、CUDA、CUDNN、TF版本以及PYTORCH版本私聊告诉我。** |
| 22 | + |
| 23 | +**问:出现如下错误** |
| 24 | +```python |
| 25 | +Traceback (most recent call last): |
| 26 | + File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module> |
| 27 | + from tensorflow.python.pywrap_tensorflow_internal import * |
| 28 | +File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module> |
| 29 | +pywrap_tensorflow_internal = swig_import_helper() |
| 30 | + File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper |
| 31 | + _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) |
| 32 | +File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\imp.py", line 243, in load_modulereturn load_dynamic(name, filename, file) |
| 33 | +File "C:\Users\focus\Anaconda3\ana\envs\tensorflow-gpu\lib\imp.py", line 343, in load_dynamic |
| 34 | + return _load(spec) |
| 35 | +ImportError: DLL load failed: 找不到指定的模块。 |
| 36 | +``` |
| 37 | +**答:如果没重启过就重启一下,否则重新按照步骤安装,还无法解决则把你的GPU、CUDA、CUDNN、TF版本以及PYTORCH版本私聊告诉我。** |
| 38 | + |
| 39 | +## 3、shape不匹配问题 |
| 40 | +### a、训练时shape不匹配问题 |
| 41 | +**问:up主,为什么运行train.py会提示shape不匹配啊? |
| 42 | +答:因为你训练的种类和原始的种类不同,网络结构会变化,所以最尾部的shape会有少量不匹配。** |
| 43 | +### b、预测时shape不匹配问题 |
| 44 | +**问:为什么我运行predict.py会提示我说shape不匹配呀。** |
| 45 | +**答:原因主要有仨: |
23 | 46 | 1、在ssd、FasterRCNN里面,可能是train.py里面的num_classes没改。 |
24 | 47 | 2、model_path没改。 |
25 | 48 | 3、classes_path没改。 |
26 | | -请检查清楚了!确定自己所用的model_path和classes_path是对应的!训练的时候用到的num_classes或者classes_path也需要检查!因为都是这个问题,如果来询问我,我也是同样的回答(问的太多了,但出错原因都是一样的,我在视频里也会强调需要修改model_path和classes_path,请一定注意修改。)。 |
| 49 | +请检查清楚了!确定自己所用的model_path和classes_path是对应的!训练的时候用到的num_classes或者classes_path也需要检查!** |
| 50 | + |
| 51 | +## 4、no module问题 |
| 52 | +**问:为什么提示说no module name utils.utils(no module name nets.yolo、no module name nets.ssd等一系列问题)啊? |
| 53 | +答:根目录不对,查查相对目录的概念。查了基本上就明白了。** |
| 54 | + |
| 55 | +**问:为什么提示说no module name matplotlib(no module name PIL)? |
| 56 | +答:打开命令行安装就好。pip install matplotlib** |
27 | 57 |
|
28 | | -问:为什么我运行train.py下面的命令行闪的贼快,还提示OOM啥的? |
| 58 | +## 5、显存问题 |
| 59 | +**问:为什么我运行train.py下面的命令行闪的贼快,还提示OOM啥的? |
29 | 60 | 答:爆显存了,可以改小batch_size,如果batch_size=1才能运行的话,那么直接换网络吧,SSD的显存占用率是最小的,建议用SSD; |
30 | 61 | 2G显存:SSD |
31 | 62 | 4G显存:YOLOV3 Faster RCNN |
32 | 63 | 6G显存:YOLOV4 Retinanet M2det Efficientdet等 |
33 | | -8G+显存:随便选吧 |
| 64 | +8G+显存:随便选吧** |
34 | 65 |
|
35 | | -问:为什么要冻结训练和解冻训练呀? |
36 | | -答:这是迁移学习的思想,因为神经网络主干特征提取部分所提取到的特征是通用的,我们冻结起来训练可以加快训练效率,也可以防止权值被破坏。 |
| 66 | +## 6、训练问题 |
| 67 | +**问:为什么要冻结训练和解冻训练呀? |
| 68 | +答:这是迁移学习的思想,因为神经网络主干特征提取部分所提取到的特征是通用的,我们冻结起来训练可以加快训练效率,也可以防止权值被破坏。** |
37 | 69 |
|
38 | | -问:为什么我的LOSS一直不下降呀? |
| 70 | +**问:为什么我的LOSS一直不下降呀? |
39 | 71 | 答:主要有五: |
40 | 72 | 1、 数据集过少,小于500的自行考虑增加数据集。 |
41 | 73 | 2、 是否解冻训练。 |
42 | 74 | 3、 如果是yoloV4可以考虑关闭mosaic,mosaic不适用所有的情况。 |
43 | 75 | 4、 网络不适应,比如SSD不适合小目标,因为先验框固定了。 |
44 | | -5、 不同网络的LOSS不同,LOSS只是一个参考指标,用于查看网络是否收敛,而非评价网络好坏,我的yolo代码都没有归一化,所以LOSS值看起来比较高,LOSS的值不重要,重要的是是否收敛! |
| 76 | +5、 不同网络的LOSS不同,LOSS只是一个参考指标,用于查看网络是否收敛,而非评价网络好坏,我的yolo代码都没有归一化,所以LOSS值看起来比较高,LOSS的值不重要,重要的是是否收敛!** |
| 77 | + |
| 78 | +**问:能不能训练灰度图啊? |
| 79 | +答:可以尝试一下在get_random_data里面将Image.open后的结果转换成RGB,预测的时候也这样试试。(仅供参考)** |
| 80 | + |
| 81 | +**问:我已经训练过几个世代了,能不能从这个基础上继续开始训练 |
| 82 | +答:可以,你在训练前,和载入预训练权重一样载入训练过的权重就行了。** |
| 83 | + |
| 84 | +**问:我怎么出现了这样的错误呀:** |
| 85 | +```python |
| 86 | +FileNotFoundError: 【Errno 2】 No such file or directory |
| 87 | +…………………………………… |
| 88 | +…………………………………… |
| 89 | +``` |
| 90 | +**答:去检查一下文件夹路径,查看是否有对应文件;并且检查一下2007_train.txt,其中文件路径是否有错。** |
| 91 | +关于路径有几个重要的点: |
| 92 | +**文件夹名称中一定不要有空格。 |
| 93 | +注意相对路径和绝对路径。 |
| 94 | +多百度路径相关的知识。** |
| 95 | + |
| 96 | +**问:我怎么出现了这样的错误呀:** |
| 97 | +```python |
| 98 | +UnicodeDecodeError: 'gbk' codec can't decode byte 0xa6 in position 446: illegal multibyte sequence |
| 99 | +``` |
| 100 | +**答:标签和路径不要使用中文。** |
| 101 | + |
| 102 | +**问:我的图片是xxx*xxx的分辨率的,可以用吗!** |
| 103 | +**答:可以用,代码里面会自动进行resize或者数据增强。** |
| 104 | + |
| 105 | +**问:为什么我yolo的loss降到了0.0几了什么都预测不出来?** |
| 106 | +**答:yolo系列的loss是降不到这么多的。查看2007_train.txt文件是否有目标信息。** |
| 107 | + |
| 108 | + |
| 109 | +## 7、乱七八糟的问题 |
| 110 | +**问:能不能说说怎么绘制PR曲线啥的呀。 |
| 111 | +答:可以看mAP视频,结果里面有PR曲线。** |
| 112 | + |
| 113 | +**问:怎么用摄像头检测呀? |
| 114 | +答:基本上所有目标检测库都有video.py可以进行摄像头检测,也有视频详细解释了摄像头检测的思路。** |
45 | 115 |
|
46 | | -问:能不能说说怎么绘制PR曲线啥的呀。 |
47 | | -答:可以看mAP视频,结果里面有PR曲线。 |
| 116 | +**问:ubuntu下可以用吗? |
| 117 | +答:可以。** |
48 | 118 |
|
49 | | -问:我已经训练过几个世代了,能不能从这个基础上继续开始训练 |
50 | | -答:可以,你在训练前,和载入预训练权重一样载入训练过的权重就行了。 |
| 119 | +**问:怎么进行多GPU训练? |
| 120 | +答:这个直接百度就好了,实现并不复杂。** |
51 | 121 |
|
52 | | -问:能不能训练灰度图啊? |
53 | | -答:可以尝试一下在get_random_data里面将Image.open后的结果转换成RGB,预测的时候也这样试试。(仅供参考) |
| 122 | +**问:为什么提示TypeError: cat() got an unexpected keyword argument 'axis',Traceback (most recent call last),AttributeError: 'Tensor' object has no attribute 'bool'? |
| 123 | +答:这是版本问题,建议使用torch1.2以上版本** |
54 | 124 |
|
55 | | -问:怎么用摄像头检测呀? |
56 | | -答:基本上所有目标检测库都有video.py可以进行摄像头检测,也有视频详细解释了摄像头检测的思路。 |
| 125 | +**其它有很多稀奇古怪的问题,很多是版本问题,建议按照我的视频教程安装Keras和tensorflow。比如装的是tensorflow2,就不用问我说为什么我没法运行Keras-yolo啥的。那是必然不行的。** |
57 | 126 |
|
58 | | -问:ubuntu下可以用吗? |
59 | | -答:可以。 |
60 | 127 |
|
61 | | -问:怎么进行多GPU训练? |
62 | | -答:这个直接百度就好了,实现并不复杂。 |
| 128 | +## 8、和原版比较问题 |
| 129 | +**问:你这个代码和原版比怎么样,可以达到原版的效果么? |
| 130 | +答:基本上可以达到,我都用voc数据测过,我没有好显卡,没有能力在coco上测试与训练。** |
63 | 131 |
|
64 | | -问:为什么提示TypeError: cat() got an unexpected keyword argument 'axis',Traceback (most recent call last),AttributeError: 'Tensor' object has no attribute 'bool'? |
65 | | -答:这是版本问题,建议使用torch1.2以上版本 |
| 132 | +## 9、FPS问题 |
| 133 | +**问:你这个FPS可以到达多少,可以到 XX FPS么? |
| 134 | +答:FPS和机子的配置有关,配置高就快,配置低就慢。** |
66 | 135 |
|
67 | | -其它有很多稀奇古怪的问题,很多是版本问题,建议按照我的视频教程安装Keras和tensorflow。比如装的是tensorflow2,就不用问我说为什么我没法运行Keras-yolo啥的。那是必然不行的。 |
| 136 | +**问:为什么我用服务器去测试yolov4(or others)的FPS只有十几? |
| 137 | +答:检查是否正确安装了tensorflow-gpu或者pytorch的gpu版本,如果已经正确安装,可以去利用time.time()的方法查看detect_image里面,哪一段代码耗时更长(不仅只有网络耗时长,其它处理部分也会耗时,如绘图等)。** |
68 | 138 |
|
| 139 | +**问:为什么论文中说速度可以达到XX,但是这里却没有? |
| 140 | +答:检查是否正确安装了tensorflow-gpu或者pytorch的gpu版本,如果已经正确安装,可以去利用time.time()的方法查看detect_image里面,哪一段代码耗时更长(不仅只有网络耗时长,其它处理部分也会耗时,如绘图等)。有些论文还会使用多batch进行预测,我并没有去实现这个部分。** |
69 | 141 |
|
0 commit comments