tensorflow2在损失函数中添加l2正则化代码
时间: 2023-08-31 20:10:30 浏览: 68
在 TensorFlow 2 中,可以使用 `tf.keras.regularizers` 模块中的 L2 正则化器来添加 L2 正则化项。以下是一个例子:
```python
import tensorflow as tf
# 定义模型
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(64, activation='relu', input_shape=(10,)),
tf.keras.layers.Dense(10, activation='softmax')
])
# 定义 L2 正则化器
regularizer = tf.keras.regularizers.l2(0.01)
# 添加 L2 正则化项到损失函数中
model.compile(optimizer='adam',
loss='categorical_crossentropy',
metrics=['accuracy'],
loss_weights=[1.0, regularizer])
# 训练模型
model.fit(x_train, y_train, epochs=10, validation_data=(x_val, y_val))
```
在上面的例子中,我们首先定义了一个包含两个全连接层的模型。然后,我们使用 `tf.keras.regularizers.l2` 函数创建了一个 L2 正则化器,其中参数 `0.01` 表示正则化项的强度。最后,在调用 `model.compile` 函数时,我们将 L2 正则化项作为第二个损失权重传递给了模型。这样,模型在训练时就会自动将 L2 正则化项加入到损失函数中。
阅读全文