• keras——经典模型之LeNet5 实现手写字识别


    经典论文:Gradient-Based Learning Applied to Document Recognition

    参考博文:https://blog.csdn.net/weixin_44344462/article/details/89212507

    构建LeNet-5模型

    #定义LeNet5网络  深度为1的灰度图像
    def LeNet5(x_train, y_train, x_test, y_test):
        ########搭建网络###########
        #直接调用顺序模型
        model = Sequential()
    
        #卷积和池化部分
        model.add(Conv2D(input_shape=(28, 28, 1),
                         filters=32, kernel_size=5, strides=1,
                         activation='sigmoid', padding='same'
                         ))
        model.add(MaxPool2D(pool_size=2, strides=2, padding='same'))
        model.add(Conv2D(filters=64, kernel_size=5, strides=2,
                         activation='sigmoid', padding='same'
                         ))
        model.add(MaxPool2D(pool_size=2, strides=2, padding='same'))
        model.add(Dropout(0.25))
    
        #扁平化
        model.add(Flatten())
    
        #全连接层
        model.add(Dense(128, activation='sigmoid'))
        model.add(Dropout(0.5))
        model.add(Dense(128, activation='sigmoid'))
        model.add(Dropout(0.5))
        model.add(Dense(10, activation='softmax'))
    
        ##  定义loss function
        #整合模型
        model.compile(optimizer='adam',
                      loss='categorical_crossentropy',
                      metrics=['accuracy']
                      )
        ##开始训练
        print("
    开始训练:")
        model.fit(x_train, y_train, batch_size=100, epochs=20)
    
        #评价模型
        print("
    评价模型:")
        final_loss, final_accuracy = model.evaluate(x_test, y_test)
        print("loss= ", final_loss)
        print("accuracy= ", final_accuracy)
    
        return model

    结果

  • 相关阅读:
    ABP框架理论学习之Debugging
    探索博客园的“打赏”模式
    P3382 【模板】三分法
    1020.数字识别
    洛谷 P1162 填涂颜色
    在windows命令行批量ping局域网内IP
    1154:LETTERS
    百炼 2790:迷宫
    洛谷 P1605 迷宫
    2012年NOIP普及组 摆花
  • 原文地址:https://www.cnblogs.com/cfancy/p/13019911.html
Copyright © 2020-2023  润新知