Tensorflow中資料集的相關操作

2021-09-11 02:37:39 字數 2016 閱讀 6799

!!!在資料集框架中,每乙個資料集代表乙個資料**,其資料**有一下幾種:張量,tfrecord檔案,文字檔案,sharding檔案等等。。。

一.資料集dataset的常用構造方法:

(1)從乙個tensor中構造資料集:dataset=tf.data.dataset.from_tensor_slices(tensor)

(2)利用硬碟上的檔案構建資料集:dataset=tf.date.textlinedataset(filename),#filename可以是多個檔案路徑組成的檔案路徑列 表

dataset=tf.data.tfrecorddataset(filename)

***filename可以是多個檔案路徑組成的檔案路徑列

***tf.data.tfrecorddataset()讀取到的每乙個tfrecord格式的資料都有不同的feature格式,因此,在利 用tf.data.tfrecorddataset()讀取檔案以後,還要定義乙個parse(record)函式來對讀取到的資料進行解析。然後利用map()函式來完成檔案解析。具體如下:

def  parse(record):

.........               #........內容為解析tfrecord格式檔案的樣式

dataset=dataset.map(parse)

二.讀取資料集的三個基本步驟:

3.使用get_next()獲取tensor

具體例項如下:

定義資料集的構造方法,根據具體上文中數情況,利用上文中對應構造方法來進行定義。

定義遍歷器,常用的有一下兩種:

(1)資料集的所有引數已經確定的情況下(檔案的路徑,檔案內容已經確定),經常使用one_shot_iterator。

格式如下:iterator=dataset.make_one_shot_iterator()

(2)在需要使用placeholder來初始化資料集時,用initializable_iterator來遍歷資料集。

格式如下:iterator=dataset.make_initializable_iterator()

#與one_shot_iterator不同的是,initializable_iterator()在會話中首先要對其進行初始化:sess.run(iterator.initializer,......)

import tensorflow as tf

def parser(record):

features = tf.parse_single_example(

record,

features=

)return features['feat1'],features['feat2']

#資料集可以是乙個tensor,或者文字檔案

#若是tensor,則使用tf.data.from_tensor_slices(input_data)

#若是文字檔案,則使用tf.data.textlinedataset(input_files)

input_files = ['file1','file2']

dataset = tf.data.tfrecorddataset(input_files)

#由於tfrecords讀取出來的是二進位制資料,需要對每個資料進行解析,得到想要的格式

#這裡使用對映函式對每個資料進行解析

dataset = dataset.map(parser)

#通過乙個迭代器獲取資料

iterator = dataset.make_one_shot_iterator()

feat1,feat2 = iterator.get_next()

with tf.session() as sess:

for i in range(10):

print(sess.run([feat1,feat2]))

用TensorFlow實現iris資料集線性回歸

本文將遍歷批量資料點並讓tensorflow更新斜率和y截距。這次將使用scikit learn的內建iris資料集。特別地,我們將用資料點 x值代表花瓣寬度,y值代表花瓣長度 找到最優直線。選擇這兩種特徵是因為它們具有線性關係,在後續結果中將會看到。本文將使用l2正則損失函式。用tensorflo...

13 tensorflow資料集操作

功能 函式 載入資料集 datasets.dataset name.load data 構建 dataset 物件 tf.data.dataset name.from tensor slices x,y 隨機打散 dataset name.shuffle buffer size 批訓練dataset...

TensorFlow中的資料型別

本文主要內容來自於史丹福大學課程cs20,有興趣的同學cs20。一 python 原生型別 tensorflow接受了python自己的原生資料型別,例如python中的布林值型別,數值資料型別 整數,浮點數 和字串型別。單一值將轉換為0維張量 標量 列表值將轉換為1維張量 向量 列表套列表將被轉換...