Readers are not supported when eager execution is enabled

最近在复现tensorflow框架第二版代码的时候遇到了

Readers are not supported when eager execution is enabled. Instead, please use tf.data to get data into your model.

这个问题。

源码如下:

# 创建一个reader类读取TFRecord文件中的样例
reader = tf.TFRecordReader()

#创建一个队列来维护输入文件列表
filename_queue = tf.train.string_input_producer(["F:/anaconda/workspace/Data/output.tfrecords"])

# 从文件中读出一个样例,也可以用read_up_to函数一次性读取多个样例
_,serialized_example = reader.read(filename_queue)
#解析读入的一个样例,如果需要解析多个样例,也可以用parse_example函数
features = tf.parse_single_example(
           serialized_example,
           features = {
               'image_raw': tf.FixedLenFeature([],tf.string),
               'pixels': tf.FixedLenFeature([],tf.int64),
               'label': tf.FixedLenFeature([],tf.int64),
            })

# tf.decode_raw可以将字符串解析成图像对应的像素数组
image = tf.decode_raw(features['image_raw'],tf.uint8)
label = tf.cast(features['label'],tf.int32)
pixels = tf.cast(features['pixels'],tf.int32)

sess = tf.Session()
#启动多线程处理输入数据
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess = sess, coord = coord)

# 每次运行可读取TFReccord文件中的一个样例。当所有的样例都读完之后,在此样例中程序会再重头读取
for i in range(10):
    print(sess.run([image,label,pixels]))

看似毫无问题,但是运行起来就报错。

根据报错信息改成tf.data还是报错,后来没办法就在代码开头加了一句:

tf.compat.v1.disable_eager_execution() 

完美解决

 

多内容下载机器学习资料请扫描下方二维码关注小编公众号:程序员大管

 

 

你可能感兴趣的:(编程路上的坑,tensorflow,tensorflow,神经网络,深度学习)