最后train的代码:
python3 train.py --model_def config/yolov3-custom.cfg --data_config config/custom.data

按资料下载yolov3进行模型训练和检测,下载了好几份代码,有一份官方的一直有问题。有一份很快跑起来了(网址忘记了,可以百度网盘分享),明明都是yolov3的pytorch版本但代码差别很大。记录遇到的问题和一些测试。

遇到的报错有:

pip’s dependency resolver does not currently take into account all the
packages that are installed. This behaviour is the source of the
following dependency conflicts. launchpadlib 1.10.6 requires
testresources, which is not installed.

正在保存至: “train2014.zip”

train2014.zip 17%[+++ ] 2.17G 15.7KB/s 剩余
8d 11hget_coco_dataset.sh: 行 13: 31298 段错误 (核心已转储) wget
-c “https://pjreddie.com/media/files/train2014.zip” --header “Referer: pjreddie.com”
–2021-03-14 10:04:08-- https://pjreddie.com/media/files/val2014.zip 正在解析主机 pjreddie.com (pjreddie.com)… 128.208.4.108 正在连接 pjreddie.com
(pjreddie.com)|128.208.4.108|:443… 已连接。 已发出 HTTP 请求,正在等待回应… 206
Partial Content 长度: 6645013297 (6.2G),剩余 6628416607 (6.2G)
[application/zip] 正在保存至: “val2014.zip”

val2014.zip 0%[ ] 19.08M 2.01KB/s 用时
7m 15sh

2021-03-14 10:11:34 (7.66 KB/s) - 在 20004216 字节处连接关闭。 重试中。

python3 test.py --weights_path weights/yolov3.weights
Namespace(batch_size=8, class_path='data/coco.names', conf_thres=0.5, data_config='config/coco.data', img_size=416, iou_thres=0.5, model_def='config/yolov3.cfg', n_cpu=8, nms_thres=0.5, weights_path='weights/yolov3.weights')
Compute mAP...
Traceback (most recent call last):File "test.py", line 109, in <module>batch_size=opt.batch_size,File "test.py", line 28, in evaluatedataset = ListDataset(path, img_size=img_size, multiscale=False, transform=DEFAULT_TRANSFORMS)File "/home/heziyi/桌面/PyTorch-YOLOv3/utils/datasets.py", line 68, in __init__with open(list_path, "r") as file:
FileNotFoundError: [Errno 2] No such file or directory: 'data/coco/5k.txt'

推测上面的报错是因为train2014.zip和val2014.zip 一直没法下载的原因,可能是占的空间太大下载不了?
测试时:python3 detect.py --image_folder data/samples/

报错:
QObject::moveToThread: Current thread (0x42dc8a0) is not the object’s thread (0x6442460).
Cannot move to target thread (0x42dc8a0)
原因:opencv-python版本高。办法:
sudo pip uninstall opencv-python
Successfully uninstalled opencv-python-4.5.1.48
heziyi@heziyi-ZenBook-UX425IA-U4700IA:~/桌面/PyTorch-YOLOv3$ pip install opencv-python==4.1.0.25 -i https://pypi.tuna.tsinghua.edu.cn/simple

再次运行python3 detect.py --image_folder data/samples/
且可以看到输出:

pip install pyqt -i https://pypi.tuna.tsinghua.edu.cn/simple
ERROR: Could not find a version that satisfies the requirement pyqt
ERROR: No matching distribution found for pyqt
改为:pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple

ubuntu的输入法打字容易错字,还是截图把。
试图训练自己引入的图片。过程:

bash create_custom_model.sh
create_custom_model.sh: 行 1: [net]: 未找到命令
原因:bash格式错误,应该加:
#!/bin/bash

NUM_CLASSES=$1

echo "

改为了用yolov3-tiny.cfg
key, value = line.split("=")
ValueError: not enough values to unpack (expected 2, got 1)
推测是自己的config写的错误之类的,把空行和多余的符号都删掉了。
目前的config:
create_custom_model.sh
执行 bash create_custom_model.sh
可以看到生成了yolov3-custom.cfg

#!/bin/bashNUM_CLASSES=$1echo "[net]
# Testing
batch=1
subdivisions=1
# Training
# batch=64
# subdivisions=2
width=416
height=416
channels=3
momentum=0.9
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1
learning_rate=0.001
burn_in=1000
max_batches = 500200
policy=steps
steps=400000,450000
scales=.1,.1
[convolutional]
batch_normalize=1
filters=16
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[convolutional]
batch_normalize=1
filters=32
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[convolutional]
batch_normalize=1
filters=64
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[convolutional]
batch_normalize=1
filters=128
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[convolutional]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[convolutional]
batch_normalize=1
filters=512
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=1
[convolutional]
batch_normalize=1
filters=1024
size=3
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=256
size=1
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=512
size=3
stride=1
pad=1
activation=leaky
[convolutional]
size=1
stride=1
pad=1
filters=18
activation=linear
[yolo]
mask = 3,4,5
anchors = 10,14,  23,27,  37,58,  81,82,  135,169,  344,319
classes=1
num=6
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1
[route]
layers = -4
[convolutional]
batch_normalize=1
filters=128
size=1
stride=1
pad=1
activation=leaky
[upsample]
stride=2
[route]
layers = -1, 8
[convolutional]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky
[convolutional]
size=1
stride=1
pad=1
filters=18
activation=linear
[yolo]
mask = 0,1,2
anchors = 10,14,  23,27,  37,58,  81,82,  135,169,  344,319
classes=1
num=6
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1
" >> yolov3-custom.cfg
`



Could not read image ‘data/images/BloodImage_00274.jpg’.
Could not read image ‘data/images/BloodImage_00308.jpg’.
这问题找了很久,终于知道了还是图片位置的原因,需要放在custom下才行,预测是代码中有设定读取的是同级文件夹。
只能读取这个里面的images而不能读取下面这个images文件夹的:


于是把train.txt内容改为:
现在能运行成功了:

最后一轮epoch
---- mAP 0.6698849929680083
还是挺低的,估计跟图片过少有关系。
输入
tensorboard --logdir=‘logs’ --port=6006
打开6006:

ubuntu上训练yolov3: Caught ValueError in DataLoader worker process 0. string indices must be integers.相关推荐

  1. 【BUG调试】——OSError: Caught OSError in DataLoader worker process 0

    目录 问题描述: 参考链接 问题分析 解决方案 出现情况 问题描述: 在使用pytorch搭建了VGG从头开始训练时出现了以下问题: OSError: Caught OSError in DataLo ...

  2. yolox: AssertionError: Caught AssertionError in DataLoader worker process 0.

    yolox 训练报错如下代码块: 根据错误提示,在voc.py文件中读取图片时发生异常. 原因:yolox给的源码读取的是lpg格式的图片,而我的输入是png格式的图片,所以报错. (也有可能是路径没 ...

  3. TypeError: Caught TypeError in DataLoader worker process 0.

    1.TypeError: Caught TypeError in DataLoader worker process 0. 和 TypeError: 'NoneType' object is not ...

  4. 【KeyError:Caught KeyError in Dataloader worker process 0. KeyError:‘标签’】

    训练单类别数据集时出现的错误解决方案 这几天在用RefineDet训练单类别数据集(划痕)时出现了如下图的错误.第一个KeyError是数据集加载相关的:第二个KeyError是使用了不存在的字典键值 ...

  5. pascal行人voc_在Pascal VOC 数据集上训练YOLOv3模型

    上节介绍了<从零开始在Windows10中编译安装YOLOv3>,本节介绍在Pascal VOC 数据集上训练YOLOv3. 第一步,下载并安装YOLOv3训练依赖项. a.下载Pasca ...

  6. 在自建的数据集上训练yolov3准备(二):树莓派自动采集图片,tensorflow_label_tool下载图片,yolo_mark标注与清洗数据(附python脚本)

    前言 上一篇文章写了如何在Google的open image v4上分类下载数据集并保存成yolo格式,这里接着写.为了确认标注没有问题,我们可以用yolo_mark来清洗一遍.而有时可能我们需要自己 ...

  7. Android 8.0 linux内核,在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序---Android8.0版本实现-对照老罗版本...

    老罗版本参见:https://blog.csdn.net/luoshengyang/article/details/6573809 在Android硬件抽象层(HAL)概要介绍和学习计划一文中,我们简 ...

  8. 如何在Ubuntu上安装SQL Server

    介绍 (Introduction) With an increasing number of new servers running on Linux, and even a third of Mic ...

  9. 自有数据集上,如何用keras最简单训练YOLOv3目标检测

    qqwweee/keras-yolo3是最简单的自数据训练yolov3的开源项目了.非常简单,相比其他的开源项目,太适合新手练习yolov3. 而公开的很多开源框架的都是基于VOC/COCO来写预训练 ...

最新文章

  1. 微生物组—宏基因组分析专题培训开课啦!10月北京
  2. linux halt函数,常用Linux命令 reboot halt shutdown passwd vlock exit等
  3. 聚焦AI落地痛点,纵论跨域学习技术前沿和应用趋势 | CNCC技术论坛
  4. 大数据分析中国冬季重度雾霾的成因(三)
  5. 操作系统:哲学家进餐问题
  6. 【AutoML】优化方法可以进行自动搜索学习吗?
  7. tensorflow-yolov3 yunyang1994 image_preporcess(image, target_size, gt_boxes=None)函数 image_preprocess
  8. Delphi开发的服务在Windows2003 64位注册方式。
  9. c#中重载单目运算符-_C#程序重载二进制运算符(-,*,/)
  10. JavaScript 获得当前日期+时间
  11. 核方法(kernel method)的主要思想
  12. vmware + ubuntu + docker+ tensorflow
  13. 【程序人生】程序员接私活常用平台汇总
  14. 抽象类是不是必须要有抽象方法
  15. 区别:符号变量和常变量
  16. 超大型生鲜配送软件源码
  17. python 工程进度计划_从零开始的项目实战(7)——项目进度述职报告
  18. PmxEditor制作mmd表情
  19. HTTTP协议之POST和GEG区别
  20. Spring Cloud概念+案例(eureka注册+拉取、ribbon负载均衡+重试)、netfix各组件介绍【上】

热门文章

  1. java 其他文件转pdf_java 其他文件转成pdf java生成pdf
  2. 获取mongodb数据变更_支持mysql、MongoDB数据变更订阅/监听分发
  3. 放在每个定义前的html语言,html基础
  4. mysql踢掉登录用户_centos 强制踢掉某登录用户的方法
  5. oracle中的null 字段,Oracle下的NULL字段
  6. java窗口how2j_java面向对象1(学习笔记HOW2J)
  7. python拷贝文件函数_Python Set集合,函数,深入拷贝,浅入拷贝,文件处理
  8. 七十四、滑动窗口最值问题
  9. 四十七、Tableau地理可视化
  10. 六、Excel中重要的数据透视表,必须要学会