将正则化用到卷积神经网络中的代码
时间: 2023-10-13 13:06:17 浏览: 121
下面是将L2正则化应用到卷积神经网络(CNN)中的示例代码:
```python
import tensorflow as tf
# 定义L2正则化参数
LAMBDA = 0.01
# 定义CNN模型
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(28, 28, 1),
kernel_regularizer=tf.keras.regularizers.l2(LAMBDA)),
tf.keras.layers.MaxPooling2D((2,2)),
tf.keras.layers.Conv2D(64, (3,3), activation='relu',
kernel_regularizer=tf.keras.regularizers.l2(LAMBDA)),
tf.keras.layers.MaxPooling2D((2,2)),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(64, activation='relu',
kernel_regularizer=tf.keras.regularizers.l2(LAMBDA)),
tf.keras.layers.Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
```
在上面的代码中,我们使用了`tf.keras.regularizers.l2`函数来定义L2正则化参数,并将其应用于卷积层和全连接层。在模型编译时,我们使用了`'adam'`优化器和`'sparse_categorical_crossentropy'`损失函数进行训练。
阅读全文