Tensorflow对象检测,生成tfrecord时出错[TypeError:None的类型为NoneType,但预期为:int,long]

时间:2018-01-19 14:35:31

标签: tensorflow object-detection tfrecord

当检查网络上可用的不同解决方案时,大多数人(包括datitran)指出它可能是列车csv文件中缺少的类或拼写错误的类。我无法弄清楚,因为标签是使用labelImg完成的,它将这些类保存为xml,xml_to_csv.py将其转换为csv。我不确定在什么情况下我可能有机会错过或错误拼错任何课程。

这是我正在处理的错误:

(OT) 
nisxxxxx@xxxxxxxx:~/Desktop/OD/models/research/object_detection$ 
python generate_tfrecord.py --csv_input=data/train_labels.csv  --
output_path=data/train.record
Traceback (most recent call last):
  File "generate_tfrecord.py", line 192, in <module>
    tf.app.run()
  File "/home/nisxxxxx/Desktop/test_OD/OT/lib/python2.7/site-
packages/tensorflow/python/platform/app.py", line 48, in run
    _sys.exit(main(_sys.argv[:1] + flags_passthrough))
  File "generate_tfrecord.py", line 184, in main
tf_example = create_tf_example(group, path)
  File "generate_tfrecord.py", line 173, in create_tf_example
    'image/object/class/label': 
dataset_util.int64_list_feature(classes),
File"/home/nishanth/Desktop/test_OD/models/research/object_detection/utils/dat
aset_util.py", line 26, in int64_list_feature
    return 
tf.train.Feature(int64_list=tf.train.Int64List(value=value))
TypeError: None has type NoneType, but expected one of: int, long

有没有人能够解决这个问题?

2 个答案:

答案 0 :(得分:5)

我不确定你使用了多少课程...在最后的其他课程尝试使用&#34;返回0而不是没有&#34; ...示例

if row_label == 'red':
    return 1
elif row_label == 'orange':
    return 2
elif row_label == 'blue':
    return 3
else:
    return 0

答案 1 :(得分:0)

只需在使用 labelImg 工具裁剪图像期间更改标签名称即可。

def class_text_to_int(row_label):
    if row_label == 'raccon':
        return 1
    else:
        None

代替 'raccon' 为 ex:- 'car' 添加标签名称。