文章目录

  • 前言
  • 一、环境搭建
  • 二、测试
  • 三、训练
    • 3.1 下载数据集
    • 3.2 在./lib/config/default.py中修改相关参数
  • 四、模型评估
  • 五、可能遇到的报错
    • 5.1 测试视频报错 IndexError: boolean index did not match indexed array along dimension 0; dimension is 1536 but corresponding boolean dimension is 1440
    • 5.2 训练报错 TypeError: can't pickle generator objects,EOFError: Ran out of input
    • 5.3 调小batch_size后仍然RuntimeError: CUDA out of memory.
    • 5.4 AttributeError: 'list' object has no attribute 'seek'. You can only torch.load from a file that is seekable. Please pre-load the data into a buffer like io.BytesIO and try to load from it
  • 总结

前言

本文将详细介绍YOLOP 训练+测试+模型评估的过程和个人遇到的所有报错。


一、环境搭建

必要环境:Windows10+python3.7+CUDA10.1+CUDNN7.6.5

  1. 创建yolop虚拟环境

    conda create -n yolo_p python=3.7
    
  2. 下载pytorch (pytorch版本>=1.7)

    conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch
    
  3. 下载YOLOP源码
    地址:https://github.com/hustvl/YOLOP

  4. 安装所需要的依赖包

    pip install -r requirements.txt
    

二、测试

  1. 运行 python tools/demo.py --source ./inference/videos/1.mp4
    测试图片:–source 图片路径 (或存放图片的文件夹路径)
    测试视频:–source 视频路径 (或存放视频的文件夹路径)
    相机实时:–source 0
    默认用cpu测试效果,如果想改成gpu,修改demo.py 198行如下。

    效果如下:

三、训练

3.1 下载数据集

  1. 下载检测任务图片:
    https://bdd-data.berkeley.edu/portal.html#download

  2. 下载检测任务标签:
    https://drive.google.com/file/d/1Ge-R8NTxG1eqd4zbryFo-1Uonuh0Nxyl/view

  3. 下载可行驶区域分割任务标签:
    https://drive.google.com/file/d/1xy_DhUZRHR8yrZG3OwTQAHhYTnXn7URv/view

  4. 下载车道线分割任务标签:
    https://drive.google.com/file/d/1lDNTPIQj_YLNZVkksKM25CvCHuquJ8AP/view

    数据集结构

    这里为了方便我自己划分了部分数据集进行训练
    下载地址:
    链接:https://pan.baidu.com/s/1XixhZtU3nNfxKLvV3RZqGQ
    提取码:ed8n

3.2 在./lib/config/default.py中修改相关参数

  1. 修改第九行_C.WORKERS = 0

  2. 修改96行,121行_C.TRAIN.BATCH_SIZE_PER_GPU 为合适大小(博主电脑比较菜这里填的1)

  3. 根据注释修改53-56行路径

  4. 运行python tools/train.py 开始训练

四、模型评估

  1. 运行 python tools/test.py --weights weights/End-to-end.pth

五、可能遇到的报错

5.1 测试视频报错 IndexError: boolean index did not match indexed array along dimension 0; dimension is 1536 but corresponding boolean dimension is 1440

解决方案:

  1. 在tools/demo.py 128行前加入如下代码

    img_det=cv2.resize(img_det,(da_seg_mask.shape[1],da_seg_mask.shape[0]) ,interpolation=cv2.INTER_AREA)
    

  2. 删除./lib/utils/plot.py 第60行的resize

  3. 在demo.py 148行下加入如下代码,运行demo.py查看效果

    cv2.namedWindow("test", cv2.WINDOW_NORMAL)
    cv2.resizeWindow("test", int(img_det.shape[1] * 0.5), int(img_det.shape[0] * 0.5))
    cv2.imshow("test", img_det)
    cv2.waitKey(30)
    


    效果

5.2 训练报错 TypeError: can’t pickle generator objects,EOFError: Ran out of input

解决方案:

  1. 修改./lib/config/default.py第九行_C.WORKERS = 0

5.3 调小batch_size后仍然RuntimeError: CUDA out of memory.

解决方案

  1. 修改./lib/config/default.py第19行_C.CUDNN.BENCHMARK = False

5.4 AttributeError: ‘list’ object has no attribute ‘seek’. You can only torch.load from a file that is seekable. Please pre-load the data into a buffer like io.BytesIO and try to load from it

解决方案

  1. 暴力删除test.py39行的nargs=’+’

总结

困,想睡觉

有什么问题,欢迎评论区交流!

学习交流群:995760755


YOLOP 训练+测试+模型评估相关推荐

  1. pytorch实现resnet50(训练+测试+模型转换)

    本章使用pytorch训练resnet50,使用cifar数据集. 数据集: 代码工程: 1.train.py import torch from torch import nn, optim imp ...

  2. tensorflow实现resnet50(训练+测试+模型转换)

    本章使用tensorflow训练resnet50,使用手写数字图片作为数据集. 数据集: 代码工程: 1.train.py import argparse import cv2 import tens ...

  3. 第六课.模型评估与模型选择

    目录 导语 模型评估 回归任务的评估指标 分类任务的评估指标 过拟合现象 过拟合的原因 过拟合解决办法 模型选择与调整超参数 正则化 留出法 交叉验证 网格搜索 实验:线性回归预测股票走势 实验说明 ...

  4. 我参加第七届NVIDIA Sky Hackathon——训练CV模型

    如何从0开始训练自己的CV模型 第一步 配置基本环境(在上一篇已经配置了我参加第七届NVIDIA Sky Hackathon--训练ASR模型 ) 第二步 利用labelimg制作图像数据集 第三步 ...

  5. 人工智能概述、人工智能发展历程、人工智能主要分支、机器学习工作流程、完整机器学习项目的流程、机器学习算法分类、独立同分布、模型评估、深度学习简介

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 1.1 人工智能概述 1 人工智能应用场景 2 人工智能小案例 ...

  6. Python数据分析-数据挖掘(准备数据——数据建模——模型评估——模型应用)

    20 理解业务和数据:我们需要做好什么计划?_哔哩哔哩_bilibili 目录 一.理解业务和数据:我们需要做好什么计划? 1.1两个思想问题 1.2为什么数据挖掘不是万能的 1.3业务背景与目标 1 ...

  7. 模型评估与模型选择(训练误差和测试误差+过拟合)| 15mins 入门 | 《统计学习方法》学习笔记(四)

    模型评估与模型选择 当损失函数给定时,基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准. 训练误差的大小,对判定给定的问 ...

  8. 通过交叉验证(Cross Validation)KFold绘制ROC曲线并选出最优模型进行模型评估、测试、包含分类指标、校准曲线、混淆矩阵等

    通过交叉验证(Cross Validation,CV)KFold绘制ROC曲线并选出最优模型进行模型评估.测试.包含分类指标.校准曲线.混淆矩阵等 Cross Validation cross val ...

  9. python训练模型测试模型_python 机器学习中模型评估和调参

    在做数据处理时,需要用到不同的手法,如特征标准化,主成分分析,等等会重复用到某些参数,sklearn中提供了管道,可以一次性的解决该问题 先展示先通常的做法 import pandas as pd f ...

最新文章

  1. php路径设置,php进行数据库路径设置的方法
  2. Python -二维数组定义
  3. Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
  4. 怎样才能快速批量绑定MAC与IP地址(图)
  5. 前端面试instanceof_一起回归一下每日一题这些经典面试题
  6. python源码编译 mingw_使用mingw32 在windows python26 下编译安装4suite-xml
  7. Windows 10 版本信息
  8. http 请求头和响应头
  9. php中计算时间差的几种方法,PHP 中计算时间差的几种方法
  10. C#中datagirdview表头变换
  11. wso2 ei 6.4.0安装笔记
  12. 如何在 Mac 上映射网络驱动器
  13. 联想微型计算机q190怎么拆,联想q190迷你小主机上网怎?
  14. TJX公司:一家不但股价便宜,产品价格也非常便宜的美国低价零售商
  15. iOS设备 历代 机型对照表
  16. Spring Boot 对基础 Web 开发的支持(下)2-2
  17. 基于FPGA的频率计
  18. 从市场应用角度上来划分,云可分为文件云、应用云、手机云和开放云
  19. json stm8s103 解析_基于STM8的ADC读取---STM8-第四章
  20. [转载]我在摩根士丹利的实习岁月

热门文章

  1. vue react 以及微信小程序数据绑定的区别
  2. 移动打击189突显电信前途
  3. 阿里自爆10月面试题库答案,Github获赞89K,119人进大厂
  4. OAF 系列教程 三 查询(上)
  5. Apollo配置管理中心
  6. Notebooks 3 for Mac(多功能记事、文档管理)
  7. R语言系统教程(七):数据的分布(含多种图的绘制)
  8. \r、\n、“回车键”,三者的关系与区别?
  9. IOS逆向之汇编语言程序入门
  10. 使用xp主题会造成出错