首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法打印tfrecord特性

无法打印tfrecord特性
EN

Stack Overflow用户
提问于 2018-06-09 18:26:12
回答 1查看 353关注 0票数 0

我正在编写一个python代码来创建tfrecord文件,该文件将A和C作为特性存储,但我很难从TFrecord文件中打印出A、C值。有人能看看这个吗?

代码语言:javascript
复制
#Writing TFrecord file
import tensorflow as tf 
import numpy as np 

writer=tf.python_io.TFRecordWriter('output.tfrecord')

A=[1,3,4]
C=[1.1, 2.1, 3.1]


feature_A=tf.train.Feature(int64_list=tf.train.Int64List(value=A))
feature_C=tf.train.Feature(float_list=tf.train.FloatList(value=C))

features={'A':feature_A, 'C':feature_C}

example=tf.train.Example(features=tf.train.Features(feature=features))



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


#Read TFrecord file    
import tensorflow as tf 

reader=tf.TFRecordReader()


filename_queue = tf.train.string_input_producer(
   ["output.tfrecord"])

_, serialized_example = reader.read(filename_queue)

feature_set = { 'A': tf.FixedLenFeature([], tf.int64),
               'C': tf.FixedLenFeature([], tf.float32)
           }

features = tf.parse_single_example( serialized_example, features= feature_set )
A=features['A']
C=features['C']

with tf.Session() as sess:
  print(sess.run([A,C])) # print out nothing 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-10 19:46:32

有两个问题:

  1. FixedlenFeature必须定义大小。因此,改为: feature_set ={ 'A':tf.FixedLenFeature(3,tf.int64),'C':tf.FixedLenFeature(3,tf.float32)}
  2. 您需要启动队列来读取输入,所以代码应该如下所示: 使用tf.Session()作为sess:#作为队列的init_op = tf.local_variables_initializer() sess.run(init_op) #创建一个协调器,启动队列运行线程。coord = tf.train.Coordinator() sess=sess= tf.train.start_queue_runners(sess=sess,coord=coord)尝试: for _ in范围(1):print(sess.run(A,C)),但tf.errors.OutOfRangeError:#完成后,请让线程停止。打印(‘’)最后: coord.request_stop() #等待线程完成。Coord.join(线程)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50777324

复制
相关文章

相似问题

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