欢迎访问宙启技术站
智能推送

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模型。