Tensorflow 如何将TFRecords转换为numpy数组?

Tensorflow 如何将TFRecords转换为numpy数组?,tensorflow,Tensorflow,其主要思想是将tfrecord转换为numpy数组。假设TFR记录存储图像。具体而言: 读取TFRecord文件并将每个图像转换为numpy数组 将图像写入1.jpg、2.jpg等 同时,将文件名和标签写入文本文件,如下所示: 我目前使用以下代码: 将tensorflow导入为tf 导入操作系统 def读取和解码(文件名队列): reader=tf.TFRecordReader() _,序列化的\u示例=reader.read(文件名\u队列) features=tf.parse_单个_示例(

其主要思想是将tfrecord转换为numpy数组。假设TFR记录存储图像。具体而言:

  • 读取TFRecord文件并将每个图像转换为numpy数组
  • 将图像写入1.jpg、2.jpg等
  • 同时,将文件名和标签写入文本文件,如下所示:
  • 我目前使用以下代码:

    将tensorflow导入为tf
    导入操作系统
    def读取和解码(文件名队列):
    reader=tf.TFRecordReader()
    _,序列化的\u示例=reader.read(文件名\u队列)
    features=tf.parse_单个_示例(
    序列化的_示例,
    #由于两个键都是必需的,因此未指定默认值。
    特征={
    “image_raw”:tf.FixedLenFeature([],tf.string),
    “标签”:tf.FixedLenFeature([],tf.int64),
    “高度”:tf.FixedLenFeature([],tf.int64),
    “宽度”:tf.FixedLenFeature([],tf.int64),
    “深度”:tf.FixedLenFeature([],tf.int64)
    })
    image=tf.decode\u raw(特征['image\u raw',tf.uint8)
    label=tf.cast(特性['label'],tf.int32)
    高度=tf.cast(特征['height'],tf.int32)
    宽度=tf.cast(特征['width'],tf.int32)
    depth=tf.cast(特性['depth'],tf.int32)
    返回图像、标签、高度、宽度、深度
    使用tf.Session()作为sess:
    filename\u queue=tf.train.string\u input\u producer([“./data/svhn/svhn\u train.tfrecords”])
    图像、标签、高度、宽度、深度=读取和解码(文件名\u队列)
    image=tf.reforme(图像,tf.pack([高度,宽度,3]))
    image.set_形状([32,32,3])
    初始化所有变量()
    sess.run(初始化操作)
    打印(image.eval())
    

    我只是在读一篇文章,试图为初学者至少获得一张图片。当我运行这个程序时,代码就卡住了。

    哎呀,我犯了一个愚蠢的错误。我使用了字符串\u输入\u生成器,但忘记运行队列\u运行程序

    将tf.Session()作为sess的
    :
    filename\u queue=tf.train.string\u input\u producer([“./data/svhn/svhn\u train.tfrecords”])
    图像、标签、高度、宽度、深度=读取和解码(文件名\u队列)
    image=tf.reforme(图像,tf.pack([高度,宽度,3]))
    image.set_形状([32,32,3])
    初始化所有变量()
    sess.run(初始化操作)
    coord=tf.train.Coordinator()
    线程=tf.train.start\u queue\u runner(coord=coord)
    对于范围(1000)内的i:
    例如,l=sess.run([image,label])
    打印(示例,l)
    协调请求停止()
    坐标连接(线程)
    
    希望我能投更多的票。我到处找这个!非常感谢你!堆栈溢出应添加“捐赠给参与者”按钮注意,自tf 1.0以来,
    tf.pack()
    已更改为
    tf.Stack()
    1.jpg 2
    2.jpg 4
    3.jpg 5