python怎么用L2正则化
时间: 2023-09-23 07:10:00 浏览: 198
在 Python 中使用 L2 正则化,可以使用一些常见的深度学习框架,比如 TensorFlow 和 PyTorch。以下是使用 TensorFlow 和 PyTorch 进行 L2 正则化的示例代码:
使用 TensorFlow 进行 L2 正则化:
```python
import tensorflow as tf
# 定义 L2 正则化权重
l2_reg = tf.keras.regularizers.l2(0.01)
# 定义模型
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(64, activation='relu', kernel_regularizer=l2_reg),
tf.keras.layers.Dense(10, activation='softmax')
])
```
在上述代码中,我们使用 `tf.keras.regularizers.l2()` 函数定义了一个 L2 正则化器,并将其作为参数传递给 `kernel_regularizer` 参数。这样,我们就可以在模型训练时对权重进行 L2 正则化。
使用 PyTorch 进行 L2 正则化:
```python
import torch
# 定义模型
class MyModel(torch.nn.Module):
def __init__(self):
super(MyModel, self).__init__()
self.fc1 = torch.nn.Linear(10, 64)
self.fc2 = torch.nn.Linear(64, 10)
def forward(self, x):
x = torch.nn.functional.relu(self.fc1(x))
x = self.fc2(x)
return x
# 定义 L2 正则化权重
l2_reg = torch.nn.L2Loss()
# 初始化模型
model = MyModel()
# 定义损失函数
criterion = torch.nn.CrossEntropyLoss()
# 定义优化器
optimizer = torch.optim.Adam(model.parameters(), lr=0.001, weight_decay=0.01)
```
在上述代码中,我们使用 `torch.nn.L2Loss()` 函数定义了一个 L2 正则化器,并将其作为参数传递给了优化器的 `weight_decay` 参数。这样,我们就可以在模型训练时对权重进行 L2 正则化。
阅读全文