Tensorflow2.0——keras
数据集加载
- keras.datasets
- boston housing/Mnist/CIFAR10/100/imdb
- tf.Datasets.from_tensor_slices
1.Mnist手写数据集
2.CIFAR10/100
-
from_tensor_slices():将numpy格式转换为tensor格式,还可以同时接收x和y,0存放特征数据,1存放标签。
-
shuffle
-
map
-
batch
- repeat 重复迭代数据集
【数据处理实例】
1.load进数据集;2.转换为one-hot;3.Dataset转换成tensor;4.map改变数据类型;5.打乱、定批次
激活函数
- tf.sigmoid:映射到0-1,深层网络容易出现梯度离散,较耗时(收敛速度慢)
- tf.softmax:用于多分类,映射出的概率和为1
- tf.tanh:映射到-1:1
- tf.nn.relu:小于0的值映射为0,大于0的线性映射(导数为1,计算简单)。适合深度的学习,计算简单,效率高
损失函数
- MSE
- Cross Entropy Loss
1.MSE
2.Cross Entropy
熵越小,不确定性越高,蕴含的信息越多。
Categorical Cross Entropy
Sigmoid函数和MSE组合使用,容易出现梯度消失,开始时收敛速度很慢等问题,而交叉熵,误差越大梯度越大,不易出现梯度消失的问题。
【数值不稳定问题】
Keras高层API
keras.Metrics
- Metrics
- update_state
- result().numpy()
- reset_states
- optimizers
1.新建一个meter
2.更新meter
3.打印
4.清除上一个的缓存
compile&fit
- compile
- fit
- evaluate
- predict
1.综合在一起
指定优化器、损失函数、训练集、测试集,validation_steps应改为validation_freq,2表示训练集迭代两次测试集迭代一次看精度。evaluate查看最终保留的参数训练的数据的精度。
2.预测
自定义层
- keras.Sequential
- keras.layers.Layer
- keras.Model
1.keras.Sequential
Sequential中的列表很容易地创建了一个五层的神经网络,network.build指定了输入,network.summary可以汇总输出w和b。
2.layer/model
继承自keras.layers.Layer和keras.Model。
模型保存与加载
- save/load weights
- save/load entire model
- saved model
1.save/load weights
2.save entire model
3.saved_model 用于工业环境,可以被其他语言编译