欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

读取TFrecord

发布时间:2024/9/27 编程问答 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 读取TFrecord 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

需求:读取生成的Tfrecord并展示部分图片.

解决方法:基于tensorflow、cv2、numpy等库完成该功能.

注:改编自网上代码 

1)  编写读取TFRecord的python代码,见下:

import numpy as np import cv2 import tensorflow as tf import matplotlib.pyplot as pltdef read_and_decode(filename_queue, shuffle_batch=True):reader = tf.TFRecordReader()_, serialized_example = reader.read(filename_queue)features = tf.parse_single_example(serialized_example, features={'image_raw': tf.FixedLenFeature([], tf.string),'label': tf.FixedLenFeature([], tf.int64)})image = tf.decode_raw(features['image_raw'], tf.float32)image = tf.reshape(image, [28, 28, 3])image = image * 255.0labels = features['label']if shuffle_batch:images, labels = tf.train.shuffle_batch([image, labels],batch_size=4,capacity=8000,num_threads=4,min_after_dequeue=2000)else:images, labels = tf.train.batch([image, labels],batch_size=4,capacity=8000,num_threads=4)return images, labelsdef TFrcords2Img(tfrecord_filename):filename_queue = tf.train.string_input_producer([tfrecord_filename],num_epochs=3)images, labs = read_and_decode(filename_queue)init_op = tf.group(tf.global_variables_initializer(),tf.local_variables_initializer())with tf.Session() as sess:sess.run(init_op)coord = tf.train.Coordinator()threads = tf.train.start_queue_runners(coord=coord)for i in range(1):imgs, labs = sess.run([images, labs])print ('batch' + str(i) + ': ')# print type(imgs[0])for j in range(4):print(str(labs[j]))img = np.uint8(imgs[j])plt.subplot(4, 2, j * 2 + 1)plt.imshow(img)plt.show()coord.request_stop()coord.join(threads)if __name__ == '__main__':TFrcords2Img('E:/Python/mnist_img_output/a4.tfrecords')

2)  执行,验证效果,见下图所示:

总结

以上是生活随笔为你收集整理的读取TFrecord的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。