tensorflow作為符號程式設計框架,需要先構建資料流圖,再讀取資料,然後再進行訓練。tensorflow提供了以下三種方式來載入資料:
預載入資料(preloaded data):在tensorflow圖中定義常量或變數來儲存所有資料
填充資料(feeding):python產生資料,再把資料填充到後端
從檔案中讀取資料(reading from file):通過佇列管理器從檔案中讀取資料
下面將詳細介紹這三種載入資料的方法以及它們之間的優缺點
一、預載入資料
1、以constant的方式進行預載入
2、以variable的方式載入資料
通過預載入的方式載入資料的缺點在於,將資料直接嵌入到資料流圖中,當訓練資料較大時,很消耗記憶體。
二、填充資料
填充資料是使用sess.run()中的feed_dict引數,將python產生的資料填充給後端
填充資料也存在資料量大、消耗記憶體等缺點,並資料型別轉換等中間環節也增加了不少的記憶體開銷。這時候最好採用最後一種載入資料的方式,先在圖中定義好檔案讀取的方法,通過tensorflow從檔案中讀取資料,再解碼成為訓練資料。
三、從檔案讀取資料
從檔案中讀取資料,主要分為兩個步驟:
1、將樣本寫入到tfrecords二進位制檔案中
2、再從佇列中讀取解碼成為可以進行訓練的資料
原文及**:
每個epoch/batch將記憶體中的numpy資料送入placeholder,只適用於小資料集,會相當占用記憶體。
從硬碟裡的txt或csv檔案讀取,io操作比較耗時。
讀取tensorflow推薦的tfrecord檔案
Tensorflow載入資料
1.reader tf.textlinereader 每次讀取一行 閱讀器的read方法會輸出乙個key來表徵輸入的檔案和其中的紀錄 對於除錯非常有用 同時得到乙個字串標量,這個字串標量可以被乙個或多個解析器,或者轉換操作將其解碼為張量並且構造成為樣本。file1.csv內容 10010 1112 ...
Tensorflow之資料的載入
載入資料 tensorflow作為符號程式設計框架,需要先構建資料流圖,再讀取資料,隨後在進行模型的訓練,所以其官網給出了三種載入資料的方式 1 預載入資料 x1 tf.constant 2,3,4 x2 tf.constant 4,0,1 y tf.add x1,x2 這種方法的缺點在於,將資料直...
tensorflow資料載入器
自己看的 import numpy as np import os from pil import image import random os.environ tf cpp min log level 2 train file data train test file data test clas...