读取TFrecord
生活随笔
收集整理的這篇文章主要介紹了
读取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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10怎么创建管理员 Win10如何
- 下一篇: 文殊菩萨心咒正确念法及回向(文殊菩萨心咒