導入包
import tensorflow as tf
from tensorflow import keras
加載數據
tensorflow可以調用keras自帶的datasets,很方便,就是有一點讓人不爽的是下載需要fq,而這個代理不太方便開,所以這里我把所有數據都下載下來了,並上傳到了堅果雲,方便大家下載。
下載連接 (訪問密碼:yDmqHd)
下載好之后,把輸入放入C:\Users\用戶名\.keras\datasets
里面,如果沒有datasets
文件夾,就新建一個,然后直接把數據放里面就行了。
目錄結構如下
C:.
│ keras.json
│
└─datasets
│ boston_housing.npz
│ cifar-10-batches-py.tar.gz
│ cifar-100-python.tar.gz
│ imdb.npz
│ mnist.npz
│ reuters.npz
│
└─fashion-mnist
t10k-images-idx3-ubyte.gz
t10k-labels-idx1-ubyte.gz
train-images-idx3-ubyte.gz
train-labels-idx1-ubyte.gz
最后讀入數據只需一句話
(x, y), (x_test, y_test) = keras.datasets.mnist.load_data()
(x, y), (x_test, y_test) = keras.datasets.boston_housing.load_data()
...
tf.data.Dataset使用
使用.from_tensor_slices
方法進行加載數據集
ds = tf.data.Dataset.from_tensor_slices((x, y))
數據預處理
.map
使用map
可以對數據進行預測,和python自帶原理一樣
def prepare_mnist_fea(x, y):
x = tf.cast(x, tf.float32) / 255.0
y = tf.cast(y, tf.float32)
return x, y
ds.map(prepare_mnist_fea)
.shuffle
打亂順序
ds.shuffle(10000)
.batch
使用某個batch
進行迭代
ds.batch(32)
.repeat
重復執行整個數據多少次,也就是epoch的意思
ds.repeat(10)