正则化代码
时间: 2023-07-02 08:14:51 浏览: 103
以下是一个简单的例子,展示如何在 Python 中使用 L2 正则化来约束模型参数的大小:
```python
import tensorflow as tf
# 定义一个带有两个隐藏层的神经网络
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation='relu', input_shape=(784,)),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
# 定义 L2 正则化器
regularizer = tf.keras.regularizers.l2(0.001)
# 添加 L2 正则化器到每个隐藏层
for layer in model.layers[:-1]:
if hasattr(layer, 'kernel_regularizer'):
layer.kernel_regularizer = regularizer
# 编译模型
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'])
```
在上面的代码中,我们使用 `tf.keras.regularizers.l2()` 函数来定义 L2 正则化器,并将其添加到每个隐藏层的权重矩阵中(如果当前层已经有一个正则化器,则更新它)。调整正则化强度可以通过调整参数 `0.001` 来实现。最后,我们将模型编译为具有 Adam 优化器和分类交叉熵损失函数的分类器。
阅读全文