關於tf.TFRecordReader()函式的用法解析
阿新 • • 發佈:2020-02-18
讀取tfrecord資料
從TFRecords檔案中讀取資料, 首先需要用tf.train.string_input_producer生成一個解析佇列。之後呼叫tf.TFRecordReader的tf.parse_single_example解析器。
如下圖:
解析器首先讀取解析佇列,返回serialized_example物件,之後呼叫tf.parse_single_example操作將Example協議緩衝區(protocol buffer)解析為張量。
簡單來說,一旦生成了TFRecords檔案,接下來就可以使用佇列(queue)讀取資料了。
def read_and_decode(filename): #根據檔名生成一個佇列 filename_queue = tf.train.string_input_producer([filename]) reader = tf.TFRecordReader() _,serialized_example = reader.read(filename_queue) #返回檔名和檔案 features = tf.parse_single_example(serialized_example,features={ 'label': tf.FixedLenFeature([],tf.int64),'img_raw' : tf.FixedLenFeature([],tf.string),}) img = tf.decode_raw(features['img_raw'],tf.uint8) img = tf.reshape(img,[224,224,3]) img = tf.cast(img,tf.float32) * (1. / 255) - 0.5 label = tf.cast(features['label'],tf.int32) return img,label
舉例:
下面程式碼是我的程式中利用TFRecord讀取格式時的程式碼:
這部分只要使用對應的程式碼就可以,主要是知道咋回事。
以上這篇關於tf.TFRecordReader()函式的用法解析就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。