temsorflow數據讀取機制
TFRecords
- 優點:TFRecords其實是一種二進制文件,能更好的利用內存,更方便複製和移動,因爲圖像和標註可以存儲在一起,避免了從硬盤上打開文件再進行數據讀取的時間,因而更高效
- 缺點:不如其他格式好理解
- 讀:從TFRecords文件中讀取數據, 可以使用tf.TFRecordReader的tf.parse_single_example解析器。這個操作可以將Example協議內存塊(protocol buffer)解析爲張量。
- 寫:TFRecords文件包含了tf.train.Example 協議內存塊(protocol buffer)(協議內存塊包含了字段 Features)。我們可以寫一段代碼獲取你的數據, 將數據填入到Example協議內存塊(protocol buffer),將協議內存塊序列化爲一個字符串, 並且通過tf.python_io.TFRecordWriter 寫入到TFRecords文件。
讀寫TFRecords數據的例子、迭代器、dataset的介紹
將數據轉化爲tf.Example要求的3種類型
tf.train.BytesList/tf.train.FloatList/tf.train.Int64List
十圖詳解tensorflow數據讀取機制
介紹了tf的文件名隊列和內存隊列模式
隊列和數據讀取
介紹了隊列讀取數據的模式
FIFOQueue和RandomShuffleQueue兩種隊列
tensorflow入門:tfrecord 和tf.data.TFRecordDataset
介紹了TFread數據保存和讀取
tips:
tf.TFRecordReader VS tf.data.TFRecordDataset
tf.TFRecordReader()可能會棄用,官方推薦用tf.data讀取TFRecord
dataset Iterator
創建一個迭代器保證每次可以獲取到一batch的數據
- one shot iterator 即只能從頭到尾讀取一次
dataset = dataset.shuffle(buffersize=1000).batch(32).repeat(10)
是將一個epoch打亂的數值重複10次