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