IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 小白初次使用Yolov3训练自己数据集常见问题:ValueError: not enough values to unpack (expected 3 got 0) -> 正文阅读

[人工智能]小白初次使用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上找到答案。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-09-27 14:05:27  更:2021-09-27 14:08:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 21:47:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码