首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从TFRecords读取时丢失数据

从TFRecords读取时丢失数据
EN

Stack Overflow用户
提问于 2017-09-02 05:50:17
回答 1查看 201关注 0票数 1

我正在创建tfrecords文件,并从tfrecords读取数据。tfrecords有两个特性,vehicleid和length。

创建tfrecords:

代码语言:javascript
运行
复制
writer = tf.python_io.TFRecordWriter(filename + '_Squence.tfrecords')
example = tf.train.Example(features=tf.train.Features(
    feature={
        'vehicleid': tf.train.Feature(int64_list=tf.train.Int64List(value=[vehicleid])),
        'length': tf.train.Feature(int64_list=tf.train.Int64List(value=[length]))

    }))
writer.write(example.SerializeToString())
writer.close()

读取tfrecords记录:

代码语言:javascript
运行
复制
filepath = filename + "_Squence.tfrecords"
filename_queue = tf.train.string_input_producer([filepath])
reader = tf.TFRecordReader()
_, serialized_example = reader.read(filename_queue)   # return filename and file
features = tf.parse_single_example(serialized_example, features={
    'vehicleid': tf.FixedLenFeature([], tf.int64),
    'length': tf.FixedLenFeature([], tf.int64)
    })

vehicleid = tf.cast(features["vehicleid"], tf.int64)
length = tf.cast(features["length"], tf.int64)
return vehicleid, length

但是当我调试代码时,我会丢失一些数据。例如,如果我发送这两个示例

vehicleid=a、frameid=b、vehicleid=c、frameid=d

当我读取数据时,我会得到这样的数据

vehicleid =a,frameid=d。

我丢失了一些数据。

有人能帮我解决这个问题吗?非常感谢。

EN

回答 1

Stack Overflow用户

发布于 2017-09-02 13:34:04

tf.train.string_input_producer([filepath])返回一个队列。每次您使用reader.read(filename_queue)进行访问时,它都会返回队列的最后一个元素。如果第二次执行reader.read,它将返回第二个元素。

如果想要到达一批元素,可以使用将队列输出作为tf.train.batch.输入的tf.train.batch

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46008369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档