LeNet模型代码生成器(Python版)
发布时间:2023-12-11 06:22:35
LeNet模型是一个经典的卷积神经网络模型,用于手写数字识别任务。在这个模型中,有两个卷积层、两个池化层和三个全连接层。
以下是一个Python版的LeNet模型代码生成器,并提供了一个使用例子来演示如何使用该代码生成器。
import tensorflow as tf
from tensorflow.keras import layers
def build_lenet_model(input_shape, num_classes):
model = tf.keras.models.Sequential()
# 层卷积层
model.add(layers.Conv2D(6, kernel_size=(5, 5), activation='relu', input_shape=input_shape))
model.add(layers.MaxPooling2D(pool_size=(2, 2)))
# 第二层卷积层
model.add(layers.Conv2D(16, kernel_size=(5, 5), activation='relu'))
model.add(layers.MaxPooling2D(pool_size=(2, 2)))
model.add(layers.Flatten())
# 个全连接层
model.add(layers.Dense(120, activation='relu'))
# 第二个全连接层
model.add(layers.Dense(84, activation='relu'))
# 输出层
model.add(layers.Dense(num_classes, activation='softmax'))
return model
# 使用示例
input_shape = (32, 32, 1)
num_classes = 10
model = build_lenet_model(input_shape, num_classes)
model.summary()
# 编译模型
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
在使用示例中,我们首先定义了输入图片的形状(32x32)和类别的数量(10)。然后使用 build_lenet_model 函数构建了LeNet模型,并使用 model.summary() 打印了模型的结构。
最后,我们使用 model.compile() 编译了模型,指定了优化器、损失函数和评估指标。
你可以根据自己的任务需求,调整LeNet模型的输入形状和类别数量,并使用这个代码生成器来构建你自己的LeNet模型。
