导入包
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)