栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

小白初次使用Yolov3训练自己数据集常见问题:ValueError: not enough values to unpack (expected 3, got 0)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小白初次使用Yolov3训练自己数据集常见问题:ValueError: not enough values to unpack (expected 3, got 0)

       最近在使用yolov3算法做目标检测实验 从GitHub上clone了项目 运行时出现了不少错误 查了一大堆资料 一个个的解决 真是愁苦了孩子 故在此分享初次使用yolov3容易出现的几个错误的解决办法。

错误1 文件目录正确但提示No such file or directary:

解决办法 1、要使用绝对路径 2、在dataset.py文件的img_path处 要保证读取图片的位置要和train.txt val.txt文件中图片的位置相衔接 这样才能在训练数据时准确读取到图片 label_path处读取的是数据集图片转化后的.txt标签文件

 img_path F:/001/PyTorch-YOLOv3/PyTorch-YOLOv3/data/coco img_path
 #print (img_path)
 # Extract image as PyTorch tensor
 img transforms.ToTensor()(Image.open(img_path).convert( RGB ))
 # Handle images with less than three channels
 if len(img.shape) ! 3:
 img img.unsqueeze(0)
 img img.expand((3, img.shape[1:]))
 _, h, w img.shape
 h_factor, w_factor (h, w) if self.normalized_labels else (1, 1)
 # Pad to square resolution
 img, pad pad_to_square(img, 0)
 _, padded_h, padded_w img.shape
 # ---------
 # Label
 # ---------
 label_path self.label_files[index % len(self.img_files)].rstrip()
 label_path F:/001/PyTorch-YOLOv3/PyTorch-YOLOv3/data/coco/labels label_path 

错误2 IndexError: index 0 is out of range

出现这种错误的原因可能是config文件夹中yolov3的网络配置文件出现使用错误 简而言之就是你可能使用的是原作者的80分类的配置文件

解决办法 将原来的yolov3.cfg文件删除 从Git官网Git (git-scm.com)下载git这个小程序 安装后鼠标右键就可以看到

点击Git Bash Here 输入命令 bash  .sh文件名   类别个数 运行即可生成自己的网络配置文件

错误3 ValueError: not enough values to unpack (expected 3, got 0);这个问题真是让我头疼了一天 它能正常训练数据 但训练完后啪啪地就给我报错了 给我气的........加上这个错误网上资料甚少 真是愁死了人 终于功夫不负有心人 在网上爬了一天 总算找到了解决办法。

解决办法1 在test.py文件53行左右在#concatenate sample statistics之前 插入这段代码

 if len(sample_metrics) 0: 
 return np.array([0]), np.array([0]), np.array([0]), np.array([0]), np.array([0], dtype np.int)

解决办法2 在train.py 第159行左右将0改为1 但本人不建议采用此法

if epoch % opt.evaluation_interval 0: 
 print( n---- evaluating Model ---- )
######################################
cahnge to
######################################
if epoch % opt.evaluation_interval 1: 
 print( n---- evaluating Model ---- )

最后顺利运行

 试运行我这里使用的是从coco数据集选出100张图片进行训练

好了 dome跑通了之后就是漫长的模型网络改进学习了 作为小白我是真的特别特别理解那种遇到问题解决不掉 资料找不到 又没人帮的心情 在这里希望后人遇到同样的问题时能快速地在CSDN上找到答案。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268278.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号