我有两个不同的tfrecords文件,其结构如下 -
feature {
key: "file_name"
value {
bytes_list {
value: "2.jpg"
}
}
}
feature {
key: "float_pic"
value {
float_list {... }
}
}
它存储文件名和float32矩阵
feature {
key: "file_name"
value {
bytes_list {
value: "2.jpg"
}
}
}
feature {
key: "image_raw"
value {
bytes_list {... }
}
}
它存储图像名称和图像像素值。
我想同步阅读这两个tfrecords文件。但我真的不知道怎么做?
这样的事情 -
def getbatch(tf_filename1, tf_filename2):
filename_queue = tf.train.string_input_producer(
[tf_filename1,tf_filename2], num_epochs=1)
reader = tf.TFRecordReader()
key, serialized_example = reader.read(filename_queue)
features = tf.parse_single_example(
serialized_example,
features={
'file_name': tf.FixedLenFeature([], tf.string),
'float_pic': tf.VarLenFeature(dtype=tf.float32),
//How to use tf_filename2 data here
'file_name2': tf.FixedLenFeature([], tf.string),
'image_raw': tf.FixedLenFeature([], tf.string)
})
//do more decoding
return tf.train.batch([file_name,float_pic,file_name2,image_raw],1)
我见过许多使用多个tfrecord文件的例子,但所有tfrecord文件都有相同类型的数据。所以我真的很想知道是否真的可以这样做。
我也尝试使用tf.train.slice_input_producer
,但在这种情况下它没用。
如果您需要我方的更多解释,请告诉我。