Python tensorflow TFK-hot编码
我正在尝试按照本教程创建TFRecord格式的训练数据集:用于API检测Python tensorflow TFK-hot编码,python,tensorflow,tfrecord,Python,Tensorflow,Tfrecord,我正在尝试按照本教程创建TFRecord格式的训练数据集:用于API检测 但是,我希望使用k-hot编码,而不是使用一个热编码。例如,我可以使用[0 1 0 1 0]so多重分类,而不是使用[0 0 1 0]标签。我想知道如何使用TFRecord格式来实现这一点。如果使用2-hot编码,是否必须创建两个tf.train.example?(使用两次相同的bouding box坐标)还是有其他方法?(例如使用'image/object/class/text':dataset_util.bytes_l
但是,我希望使用k-hot编码,而不是使用一个热编码。例如,我可以使用[0 1 0 1 0]so多重分类,而不是使用[0 0 1 0]标签。我想知道如何使用TFRecord格式来实现这一点。如果使用2-hot编码,是否必须创建两个
tf.train.example
?(使用两次相同的bouding box坐标)还是有其他方法?(例如使用'image/object/class/text':dataset_util.bytes_list_feature(classes_text)
,以及'image/object/class/text2':dataset_util.bytes_list_feature(classes_text2))
?如果有[0,1,2]和10个类这样的标签列表,您需要
def int64_feature(value):
if type(value) != list:
value = [value]
return tf.train.Feature(int64_list=tf.train.Int64List(value=value))
然后将标签作为特性之一传递给tf.Example
'label': int64_feature(label)
之后,当您在培训期间解析数据集时,您可以像这样分解标签:
tf.reduce_max(tf.one_hot(labels, num_classes, dtype=tf.int32), axis=0)
给
[1 1 1 0 0 0 0 0 0 0]