用自己的coco格式的数据集,怎么指定类别
收藏
快速回复
AI Studio平台使用 问答Notebook项目 2478 17
用自己的coco格式的数据集,怎么指定类别
收藏
快速回复
AI Studio平台使用 问答Notebook项目 2478 17

我用自己的coco数据集训练的yolodarknet模型,更改了默认的那个yml文件和reader文件,只更改了类别数和数据集的路径,结果出来的模型,所有的类别数都是person。

我想让他们显示自己的类别,应该怎么做?

我在reader.yml文件里面加上了use_default_label=false,但是这个标签好像不符合要求,报错,说这个标签是unexpected。

Error when construct COCODataSet instance from yaml config
Traceback (most recent call last):
File "tools/train.py", line 331, in
main()
File "tools/train.py", line 68, in main
cfg = load_config(FLAGS.config)
File "/home/aistudio/detection/PaddleDetection-release-0.2/ppdet/core/workspace.py", line 96, in load_config
merge_config(yaml.load(f, Loader=yaml.Loader))
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/yaml/__init__.py", line 114, in load
return loader.get_single_data()
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/yaml/constructor.py", line 43, in get_single_data
return self.construct_document(node)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/yaml/constructor.py", line 52, in construct_document
for dummy in generator:
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/yaml/constructor.py", line 404, in construct_yaml_map
value = self.construct_mapping(node)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/yaml/constructor.py", line 210, in construct_mapping
return super().construct_mapping(node, deep=deep)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/yaml/constructor.py", line 135, in construct_mapping
value = self.construct_object(value_node, deep=deep)
File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/yaml/constructor.py", line 92, in construct_object
data = constructor(self, node)
File "/home/aistudio/detection/PaddleDetection-release-0.2/ppdet/core/config/yaml_helpers.py", line 36, in python_constructor
raise ex
File "/home/aistudio/detection/PaddleDetection-release-0.2/ppdet/core/config/yaml_helpers.py", line 32, in python_constructor
return cls(**kwargs)
TypeError: __init__() got an unexpected keyword argument 'use_default_label'

0
收藏
回复
全部评论(17)
时间顺序
吻得太哔甄
#2 回复于2020-04

全都是person,还都是1.00

0
回复
吻得太哔甄
#3 回复于2020-04

我自己准备的coco数据里面,都是有类别的,就是这个category_id,是1-6,所以有6个类别

0
回复
AIStudio810258
#4 回复于2020-04

记得我用paddle-hub里的yolov3模型时,它的设置文件里有一个输入“类别列表”的项

0
回复
AIStudio810258
#5 回复于2020-04
记得我用paddle-hub里的yolov3模型时,它的设置文件里有一个输入“类别列表”的项

哦,不是设置文件,是数据集里的dataset文件

0
回复
AIStudio810258
#6 回复于2020-04
哦,不是设置文件,是数据集里的dataset文件

是label_list

0
回复
吻得太哔甄
#7 回复于2020-04
记得我用paddle-hub里的yolov3模型时,它的设置文件里有一个输入“类别列表”的项

是label_list吗

0
回复
AIStudio810260
#8 回复于2020-04

我的做法是去改PaddleDetection里面的相关源码

0
回复
自尊心3
#9 回复于2020-04

是不是要重启一下才生效

0
回复
吻得太哔甄
#10 回复于2020-04
我的做法是去改PaddleDetection里面的相关源码

我也是改的源码,有个大佬告诉我改哪里的源码,我就改了,最后跑出来了

0
回复
吻得太哔甄
#11 回复于2020-04

这个问题已经解决了,在ppdet\utils\coco_eval.py里面修改一下类别即可,不要删除0类别

0
回复
AIStudio810260
#12 回复于2020-04
这个问题已经解决了,在ppdet\utils\coco_eval.py里面修改一下类别即可,不要删除0类别

这边还有个问题,如果是中文的类别怎么处理?因为会报错,之前只好用拼音替代了。

0
回复
吻得太哔甄
#13 回复于2020-04
这边还有个问题,如果是中文的类别怎么处理?因为会报错,之前只好用拼音替代了。

中文会报错吗?感觉代码里面写中文都有很大可能出现莫名其妙的错误,所以使用了拼音代替,中文还真没有试过。

0
回复
水水水的老师
#14 回复于2020-04

在ppdet\utils\coco_eval.py修改一下类别

0
回复
AIStudio810260
#15 回复于2020-04
中文会报错吗?感觉代码里面写中文都有很大可能出现莫名其妙的错误,所以使用了拼音代替,中文还真没有试过。

在可视化的时候会报错,好像是字符集的问题。。。

0
回复
AIStudio810258
#16 回复于2020-04
这个问题已经解决了,在ppdet\utils\coco_eval.py里面修改一下类别即可,不要删除0类别

恩,解决了就好。

来AI Studio互粉吧~等你哦~ https://aistudio.baidu.com/aistudio/personalcenter/thirdview/76563

下面是我写的一些小贴,闲时君阅。

【项目列表】

训练数据太少?过拟合?一文带你领略“数据增长魔法”(上) (https://aistudio.baidu.com/aistudio/projectdetail/408059)

训练数据太少?过拟合?一文带你领略“数据增长魔法”(下) (https://aistudio.baidu.com/aistudio/projectdetail/422256)

一文帮你理解用Paddle训练模型的原理1-手写回归模型 (https://aistudio.baidu.com/aistudio/projectdetail/367090)

一文帮你理解用Paddle训练模型的原理2-权值可视化(VisualDL) (https://aistudio.baidu.com/aistudio/projectdetail/386954)

0
回复
吻得太哔甄
#17 回复于2020-04
在ppdet\utils\coco_eval.py修改一下类别

是的,就是在这个里面修改一下类别就好了

0
回复
殷总总
#18 回复于2020-12
是的,就是在这个里面修改一下类别就好了

怎么修改啊,我随便改了两行,还是不行

0
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户