助力软件开发企业降本增效 PHP / java源码系统,只需一次付费,代码终身使用! 广告
* [ ] 用于让机器学习模型看到的不同样本彼此之间更加相似 **最常见的数据标准化**:将数据减去其平均值使其中心为0,然后将数据除以其标准差使其标准差为1。 * 这种做法假设数据服从正态分布(也叫高斯分布),并确保让该分布的中心为0,同时缩放到方差为1 `normalized_data=(data-np.mean(data,axis=...))/np.std(data,axis=...)` **批标准化** (batch normalization) * Ioffe 和 Szegedy 在 2015 年提出的一种层的类型 * 在 Keras 中是 `BatchNormalization` * 在训练过程中均值和方差随时间发生变化,它也可以适应性地将数据标准化 * 工作原理 : * 训练过程中在内部保存已读取每批数据均值和方差的指数移动平均值 * 作用:有助于梯度传播 **使用** ``` conv_model.add(layers.Conv2D(32,3,activation='relu')) #在卷积层之后使用 conv_model.add(layers.BatchNormalization()) dense_model.add(layers.Dense(32,activation='relu')) #在Dense层之后使用 dense_model.add(layers.BatchNormalization()) ``` **参数`axis`** * `BatchNormalization`层接收一个`axis`参数,它指定应该对哪个特征轴做标准化 * 参数的默认值是-1,即输入张量的最后一个轴 * 使用范围:Dense层、Conv1D层、RNN层、将data_format设为"channels_last"(通道在后)的Conv2D层 * 将data_format设为"channels_first"(通道在前)的Conv2D层,这时特征轴是编号为1的轴,取1