本文将详细介绍:
- 实现批标准化
- 实现selu激活函数
- 实现dropout
一,实现批标准化
- 在模型中加入批标准化层。
- 激活函数relu在keras中可以独立以层级的方式加入。
- 关于BatchNormalization的介绍
https://www.freesion.com/article/1720963165/
https://blog.youkuaiyun.com/flash_zhj/article/details/107011080
1,keras实现批标准化代码如下
model = keras.models.Sequential()
model.add(keras.layers.Flatten(input_shape=[28, 28]))
for _ in range(20):
model.add(keras.layers.Dense(100, activation="relu"))
model.add(keras.layers.BatchNormalization())# 批标准化
"""
model.add(keras.layers.Dense(100))
model.add(keras.layers.BatchNormalization())
model.add(keras.layers.Activation('relu'))
"""
model.add(keras.layers.Dense(10, activation="softmax"))
model.compile(loss="sparse_categorical_crossentropy",
optimizer = keras.optimizers.SGD(0.001),
metrics = ["accuracy"])
2,完整代码如下
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import sklearn
import pandas as pd
import os
import sys
import time
import tensorflow as tf
from tensorflow import keras
# 1,打印模型安装包版本号
print(tf.__version__)
print(sys.version_info)
for module in mpl, np, pd, sklearn, tf, keras:
print(module.__name__, module.__version__)
# 2,加载模型数据-测试数据,测试数据,验证数据
fashion_mnist = keras.datasets.fashion_mnist
(x_train_all, y_train_all), (x_test, y_test) = fashion_mnist.load_data()
x_valid, x_train = x_train_all[:5000], x_train_all[5000:]
y_valid, y_train = y_train_all[:5000], y_train_all[5000:]
print(x_valid.shape, y_valid.shape)
print(x_train.shape, y_train.shape)
print(x_test.shape, y_test.shape)
# 3,将测试数据,测试数据,验证数据做标准化处理
# x = (x - u) / std
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
# x_train: [None, 28, 28] -> [None, 784]
x_train_scaled =

本文介绍了如何在Keras中实现批标准化、Selu激活函数和Dropout,以优化深度学习模型。首先展示了批标准化的实现,通过在每个隐藏层后添加BatchNormalization层来缓解梯度消失问题。接着,详细解释了Selu激活函数的作用,并给出了相应的代码。最后,探讨了Dropout的重要性,特别是AlphaDropout,用于防止过拟合。通过完整的训练过程和损失曲线展示,文章阐述了这些技术在模型性能提升上的效果。
最低0.47元/天 解锁文章
1823

被折叠的 条评论
为什么被折叠?



