我用自己的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'
全都是person,还都是1.00
我自己准备的coco数据里面,都是有类别的,就是这个category_id,是1-6,所以有6个类别
记得我用paddle-hub里的yolov3模型时,它的设置文件里有一个输入“类别列表”的项
哦,不是设置文件,是数据集里的dataset文件
是label_list
是label_list吗
我的做法是去改PaddleDetection里面的相关源码
是不是要重启一下才生效
我也是改的源码,有个大佬告诉我改哪里的源码,我就改了,最后跑出来了
这个问题已经解决了,在ppdet\utils\coco_eval.py里面修改一下类别即可,不要删除0类别
这边还有个问题,如果是中文的类别怎么处理?因为会报错,之前只好用拼音替代了。
中文会报错吗?感觉代码里面写中文都有很大可能出现莫名其妙的错误,所以使用了拼音代替,中文还真没有试过。
在ppdet\utils\coco_eval.py修改一下类别
在可视化的时候会报错,好像是字符集的问题。。。
恩,解决了就好。
来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)
是的,就是在这个里面修改一下类别就好了
怎么修改啊,我随便改了两行,还是不行