tensorflow-yolov3
tensorflow-yolov3 copied to clipboard
标签空格问题
我想请教一下,训练完了,也验证完了,但是运行main.py查看map值时报错说是标签有空格,标签有空格不行吗?
错误提示: If you have a <class_name> with spaces between words you should remove them by running the script "remove_space.py" or "rename_class.py" in the "extra/" folder. 我按照这个提示改了,也没改好啊,求大佬指点
已解决,批量处理了xml文件,把空格处理了重新训练,执行main.py就不会报错了
您好,请问您在使用作者建议的VOC数据集做训练,运行train.py后,是否有出现报错ValueError: could not convert string to float: '/home/zjh/tensorflow-yolov3/data/dataset/VOC/train/VOCdevkit/VOC2007/JPEGImages/000005.jpg 263'的情况嘛。初步判断是utils.py文件里读取voc_test.txt时没有正确划分数据,不知道是不是这个问题.
您好,请问您在使用作者建议的VOC数据集做训练,运行train.py后,是否有出现报错ValueError: could not convert string to float: '/home/zjh/tensorflow-yolov3/data/dataset/VOC/train/VOCdevkit/VOC2007/JPEGImages/000005.jpg 263'的情况嘛。初步判断是utils.py文件里读取voc_test.txt时没有正确划分数据,不知道是不是这个问题.
这种情况我没遇到过 不过你检查一下你的xml文件和图像文件都能对的上不 检查一下图片的格式是否正确
您好,请问您在使用作者建议的VOC数据集做训练,运行train.py后,是否有出现报错ValueError: could not convert string to float: '/home/zjh/tensorflow-yolov3/data/dataset/VOC/train/VOCdevkit/VOC2007/JPEGImages/000005.jpg 263'的情况嘛。初步判断是utils.py文件里读取voc_test.txt时没有正确划分数据,不知道是不是这个问题.
这种情况我没遇到过 不过你检查一下你的xml文件和图像文件都能对的上不 检查一下图片的格式是否正确
好的,谢谢回复♥
我也遇到了这个问题,运行main.py时报这个错误,请问怎么处理xml标签文件呢,谢谢!
我也遇到了这个问题,运行main.py时报这个错误,请问怎么处理xml标签文件呢,谢谢!
就是找一个可以批量处理xml文件的脚本,把你之前的带有空格的标签改掉就可以了,然后重新训练
我也遇到了这个问题,运行main.py时报这个错误,请问怎么处理xml标签文件呢,谢谢!
就是找一个可以批量处理xml文件的脚本,把你之前的带有空格的标签改掉就可以了,然后重新训练
请问这个会影响我原来生成的train.txt文件吗,批量处理之后,还需要修改其他的吗,类似于class文件,谢谢!
我也遇到了这个问题,运行main.py时报这个错误,请问怎么处理xml标签文件呢,谢谢!
就是找一个可以批量处理xml文件的脚本,把你之前的带有空格的标签改掉就可以了,然后重新训练
请问这个会影响我原来生成的train.txt文件吗,批量处理之后,还需要修改其他的吗,类似于class文件,谢谢!
原则上不会影响,因为train,txt保存的是你的图像文件的路径和标注的坐标信息,只需要修改标签就可以,然后重新训练。
我也遇到了这个问题,运行main.py时报这个错误,请问怎么处理xml标签文件呢,谢谢!
就是找一个可以批量处理xml文件的脚本,把你之前的带有空格的标签改掉就可以了,然后重新训练
请问这个会影响我原来生成的train.txt文件吗,批量处理之后,还需要修改其他的吗,类似于class文件,谢谢!
原则上不会影响,因为train,txt保存的是你的图像文件的路径和标注的坐标信息,只需要修改标签就可以,然后重新训练。
谢谢,我这个标签的空格是在中间,请问您还有这个脚本,能发给我一份吗,万分感谢!
我也遇到了这个问题,运行main.py时报这个错误,请问怎么处理xml标签文件呢,谢谢!
就是找一个可以批量处理xml文件的脚本,把你之前的带有空格的标签改掉就可以了,然后重新训练
请问这个会影响我原来生成的train.txt文件吗,批量处理之后,还需要修改其他的吗,类似于class文件,谢谢!
原则上不会影响,因为train,txt保存的是你的图像文件的路径和标注的坐标信息,只需要修改标签就可以,然后重新训练。
谢谢,我这个标签的空格是在中间,请问您还有这个脚本,能发给我一份吗,万分感谢!
import os import xml.etree.ElementTree as ET
#程序功能:批量修改VOC数据集中xml标签文件的标签名称 def changelabelname(inputpath): listdir = os.listdir(inputpath) for file in listdir: if file.endswith('xml'): file = os.path.join(inputpath,file) tree = ET.parse(file) root = tree.getroot() for object1 in root.findall('object'): for sku in object1.findall('name'): #查找需要修改的名称 if (sku.text == 'preName'): #‘preName’为修改前的名称 sku.text = 'TESTNAME' #‘TESTNAME’为修改后的名称 tree.write(file,encoding='utf-8') #写进原始的xml文件并避免原始xml中文字符乱码 else: pass else: pass
if name == 'main': inputpath = 'E:/Research/Dataset/Test/Annotations' #此处替换为自己的路径 changelabelname(inputpath) 这个就是
我也遇到了这个问题,运行main.py时报这个错误,请问怎么处理xml标签文件呢,谢谢!
就是找一个可以批量处理xml文件的脚本,把你之前的带有空格的标签改掉就可以了,然后重新训练
请问这个会影响我原来生成的train.txt文件吗,批量处理之后,还需要修改其他的吗,类似于class文件,谢谢!
原则上不会影响,因为train,txt保存的是你的图像文件的路径和标注的坐标信息,只需要修改标签就可以,然后重新训练。
谢谢,我这个标签的空格是在中间,请问您还有这个脚本,能发给我一份吗,万分感谢!
import os import xml.etree.ElementTree as ET
#程序功能:批量修改VOC数据集中xml标签文件的标签名称 def changelabelname(inputpath): listdir = os.listdir(inputpath) for file in listdir: if file.endswith('xml'): file = os.path.join(inputpath,file) tree = ET.parse(file) root = tree.getroot() for object1 in root.findall('object'): for sku in object1.findall('name'): #查找需要修改的名称 if (sku.text == 'preName'): #‘preName’为修改前的名称 sku.text = 'TESTNAME' #‘TESTNAME’为修改后的名称 tree.write(file,encoding='utf-8') #写进原始的xml文件并避免原始xml中文字符乱码 else: pass else: pass
if name == 'main': inputpath = 'E:/Research/Dataset/Test/Annotations' #此处替换为自己的路径 changelabelname(inputpath) 这个就是
我只需要把原来的标签中间的空格删掉就可以了吗,那我的voc.names里面需要删掉空格吗,谢谢您
我也遇到了这个问题,运行main.py时报这个错误,请问怎么处理xml标签文件呢,谢谢!
就是找一个可以批量处理xml文件的脚本,把你之前的带有空格的标签改掉就可以了,然后重新训练
请问这个会影响我原来生成的train.txt文件吗,批量处理之后,还需要修改其他的吗,类似于class文件,谢谢!
原则上不会影响,因为train,txt保存的是你的图像文件的路径和标注的坐标信息,只需要修改标签就可以,然后重新训练。
谢谢,我这个标签的空格是在中间,请问您还有这个脚本,能发给我一份吗,万分感谢!
import os import xml.etree.ElementTree as ET #程序功能:批量修改VOC数据集中xml标签文件的标签名称 def changelabelname(inputpath): listdir = os.listdir(inputpath) for file in listdir: if file.endswith('xml'): file = os.path.join(inputpath,file) tree = ET.parse(file) root = tree.getroot() for object1 in root.findall('object'): for sku in object1.findall('name'): #查找需要修改的名称 if (sku.text == 'preName'): #‘preName’为修改前的名称 sku.text = 'TESTNAME' #‘TESTNAME’为修改后的名称 tree.write(file,encoding='utf-8') #写进原始的xml文件并避免原始xml中文字符乱码 else: pass else: pass if name == 'main': inputpath = 'E:/Research/Dataset/Test/Annotations' #此处替换为自己的路径 changelabelname(inputpath) 这个就是
我只需要把原来的标签中间的空格删掉就可以了吗,那我的voc.names里面需要删掉空格吗,谢谢您
改掉 改掉后的所有标签要保持一致
我也遇到了这个问题,运行main.py时报这个错误,请问怎么处理xml标签文件呢,谢谢!
就是找一个可以批量处理xml文件的脚本,把你之前的带有空格的标签改掉就可以了,然后重新训练
请问这个会影响我原来生成的train.txt文件吗,批量处理之后,还需要修改其他的吗,类似于class文件,谢谢!
原则上不会影响,因为train,txt保存的是你的图像文件的路径和标注的坐标信息,只需要修改标签就可以,然后重新训练。
谢谢,我这个标签的空格是在中间,请问您还有这个脚本,能发给我一份吗,万分感谢!
import os import xml.etree.ElementTree as ET #程序功能:批量修改VOC数据集中xml标签文件的标签名称 def changelabelname(inputpath): listdir = os.listdir(inputpath) for file in listdir: if file.endswith('xml'): file = os.path.join(inputpath,file) tree = ET.parse(file) root = tree.getroot() for object1 in root.findall('object'): for sku in object1.findall('name'): #查找需要修改的名称 if (sku.text == 'preName'): #‘preName’为修改前的名称 sku.text = 'TESTNAME' #‘TESTNAME’为修改后的名称 tree.write(file,encoding='utf-8') #写进原始的xml文件并避免原始xml中文字符乱码 else: pass else: pass if name == 'main': inputpath = 'E:/Research/Dataset/Test/Annotations' #此处替换为自己的路径 changelabelname(inputpath) 这个就是
我只需要把原来的标签中间的空格删掉就可以了吗,那我的voc.names里面需要删掉空格吗,谢谢您
改掉 改掉后的所有标签要保持一致
谢谢您,我试试改一下看能否运行!
刚刚运行了之后可以跑了,但是又出现了这个错误,map率为0,报的错ValueError: not enough values to unpack (expected 2, got 0),不知道您遇到过没有
刚刚运行了之后可以跑了,但是又出现了这个错误,map率为0,报的错ValueError: not enough values to unpack (expected 2, got 0),不知道您遇到过没有
这个我没有遇到过,不过好像这个错误很常见 你上网查一下, 建议你更改完标签之后,重新按照流程训练一遍 然后再测试map等验证指标