大家好,之前幾天介紹兩種建立模型的方法,也以簡單的方式實作了用Sequential Model和Function API建立的模型,今天原本是要用其他的層來建立模型,但還是改成明天好了。而今天要介紹的是Dataset的建立與讀取資料的操作方法,這次會用到的API是tf.data。
首先要建立Dataset,建立Dataset的方法不只一種,每種也有些不同,這次用from_tensor_slices來建立Dataset:
datasetA=tf.data.Dataset.from_tensor_slices(tf.constant([0,1,2,3,4,5]))
datasetB=tf.data.Dataset.from_tensor_slices(tf.constant([0,2,4,6,8,10]))
再來是介紹幾種讀取資料的方法:
for loop-讀取全部資料:
for data in datasetA:
print(data)
for dataA, dataB in zip(datasetA,datasetB):
print('{},{}'.format(dataA,dataB))
take-可以指定讀取資料數量:
for data in datasetA.take(1):
print(data)
for dataA, dataB in zip(datasetA.take(3),datasetB.take(3)):
print('{},{}'.format(dataA,dataB))
take裡的參數代表取出多少資料,有多個Dataset要用take取資料但參數不一樣時,會以參數最小的為主。
batch-設定每一個batch讀取的資料量:
dataset=tf.data.Dataset.zip((datasetA,datasetB)).batch(2)
for data in dataset.take(2):
print(data)
shuffle-隨機取出資料:
datasetAs=datasetA.shuffle(3)
for data in datasetAs.take(2):
print(format(data))
shuffle裡的參數代表隨機取出了多少資料,若是參數大於或等於Dataset資料個數,就會隨機取出Dataset中的全部資料。
今天實作了Dataset的建立與部分讀取資料的方法,明天要介紹的就是一開始提到的,前幾天都是使用Dense層來建立模型,也會試著用其他的層。