TensorFlow csv读取文件数据(代码实现)
TensorFlow csv讀取文件數據(代碼實現)
大多數人了解 Pandas 及其在處理大數據文件方面的實用性。TensorFlow 提供了讀取這種文件的方法。
前面章節中,介紹了如何在 TensorFlow 中讀取文件,本文將重點介紹如何從 CSV 文件中讀取數據并在訓練之前對數據進行預處理。
將采用哈里森和魯賓菲爾德于 1978 年收集的波士頓房價數據集(http://lib.stat.cmu.edu/datasets/boston),該數據集包括 506 個樣本場景,每個房屋含 14 個特征:
-
CRIM:城鎮人均犯罪率
-
ZN:占地 25000 平方英尺(1 英尺=0.3048 米)以上的住宅用地比例
-
INDUS:每個城鎮的非零售商業用地比例
-
CHAS:查爾斯河(Charles River)變量(若土地位于河流邊界,則為 1;否則為 0)
-
NOX:一氧化氮濃度(每千萬)
-
RM:每個寓所的平均房間數量
-
AGE:1940 年以前建成的自住單元比例
-
DIS:到 5 個波士頓就業中心的加權距離
-
RAD:徑向高速公路可達性指數
-
TAX:每萬美元的全價值物業稅稅率
-
PTRATIO:鎮小學老師比例
-
B:1000(Bk-0.63)2,其中 Bk 是城鎮黑人的比例
-
LSTAT:低地位人口的百分比
-
MEDV:1000 美元自有住房的中位值
TensorFlow讀取csv文件過程 -
導入所需的模塊并聲明全局變量:
-
定義一個將文件名作為參數的函數,并返回大小等于 BATCH_SIZE 的張量:
-
定義 f_queue 和 reader 為文件名:
-
這里指定要使用的數據以防數據丟失。對 .csv 解碼并選擇需要的特征。例如,選擇 RM、PTRATIO 和 LSTAT 特征:
-
定義參數來生成批并使用 tf.train.shuffle_batch() 來隨機重新排列張量。該函數返回張量 feature_batch 和 label_batch:
-
這里定義了另一個函數在會話中生成批:
-
使用這兩個函數得到批中的數據。這里,僅打印數據;在學習訓練時,將在這里執行優化步驟:
TensorFlow csv數據預處理
用前面章節提到的 TensorFlow 控制操作和張量來對數據進行預處理。例如,對于波士頓房價的情況,大約有 16 個數據行的 MEDV 是 50.0。在大多數情況下,這些數據點包含缺失或刪減的值,因此建議不要考慮用這些數據訓練。可以使用下面的代碼在訓練數據集中刪除它們:
這里定義了一個張量布爾條件,若 MEDV 等于 50.0 則為真。如果條件為真則可使用 TensorFlow tf.where() 操作賦為零值。
總結
以上是生活随笔為你收集整理的TensorFlow csv读取文件数据(代码实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TensorFlow优化器及用法
- 下一篇: TensorFlow简单线性回归