使用卷积神经网络CNN训练minist数据集(二)

简介: 使用卷积神经网络CNN训练minist数据集(二)
"""
使用CNN训练minist数据集
"""

# 导入模块
from tensorflow.keras.utils import to_categorical
from tensorflow.keras import models, layers
from tensorflow.keras.optimizers import RMSprop
from tensorflow.keras.datasets import mnist

# 加载数据集
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

# 将图片由二维铺展成为一维,并进行归一化处理
train_images = train_images.reshape(60000, 28, 28, 1).astype('float') / 255
test_images = test_images.reshape(10000, 28, 28, 1).astype('float') / 255
# 将训练集和测试集标签转换为one-hot编码
train_labels = to_categorical(train_labels)
test_labels = to_categorical(test_labels)
# 打印输出第0个训练集和测试集的标签
print("train_labels[0]:", train_labels[0])
print("test_labels[0]", test_labels[0])


# 搭建LeNet网络
def LeNet():
    network = models.Sequential()
    network.add(layers.Conv2D(filters=6, kernel_size=(3, 3), padding='same',
                              activation='relu', input_shape=(28, 28, 1)))
    network.add(layers.AveragePooling2D(pool_size=(2, 2)))
    network.add(layers.Conv2D(filters=16, kernel_size=(3, 3), padding='same',
                              activation='relu'))
    network.add(layers.BatchNormalization())
    network.add(layers.AveragePooling2D(pool_size=(2, 2)))
    network.add(layers.Conv2D(filters=160, kernel_size=(3, 3), padding='same',
                              activation='relu'))
    network.add(layers.BatchNormalization())
    network.add(layers.Dropout(0.03))
    network.add(layers.Flatten())
    network.add(layers.Dense(units=84, activation='relu'))
    network.add(layers.Dropout(0.03))
    network.add(layers.Dense(units=10, activation='softmax'))
    return network


networks = LeNet()
# print(networks.summary())

# 编译:确定优化器和损失函数等
networks.compile(optimizer=RMSprop(lr=0.001), loss='categorical_crossentropy', metrics=['accuracy'])

# 训练网络,用fit函数,epochs表示训练多少个回合,batch_size表示每次训练给多大的数据
networks.fit(train_images, train_labels, epochs=20, batch_size=235, verbose=1)

# 在测试集上预测前五张图片
y_pre = networks.predict(test_images[:5])
# 输出打印测试集在LeNet网络中测试前五张图片的结果和真实测试集前五张图片的结果
print("y_pre:\n", y_pre)
print("test_labels:\n", test_labels[:5])

# 在测试集上测试模型的性能
test_loss, test_accuracy = networks.evaluate(test_images, test_labels)
print("test_loss:", test_loss, "    test_accuracy:", test_accuracy)

​
相关文章
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
|
2月前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
83 8
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
356 7
|
2月前
|
机器学习/深度学习 自然语言处理 算法
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
72 1
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
探索深度学习中的卷积神经网络(CNN)及其在现代应用中的革新
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
本文旨在通过深入浅出的方式,为读者揭示卷积神经网络(CNN)的神秘面纱,并展示其在图像识别领域的实际应用。我们将从CNN的基本概念出发,逐步深入到网络结构、工作原理以及训练过程,最后通过一个实际的代码示例,带领读者体验CNN的强大功能。无论你是深度学习的初学者,还是希望进一步了解CNN的专业人士,这篇文章都将为你提供有价值的信息和启发。
|
2月前
|
机器学习/深度学习 计算机视觉 网络架构
为什么卷积现在不火了:CNN研究热度降温的深层原因分析
纵观近年的顶会论文和研究热点,我们不得不承认一个现实:CNN相关的研究论文正在减少,曾经的"主角"似乎正逐渐淡出研究者的视野。
107 11
为什么卷积现在不火了:CNN研究热度降温的深层原因分析
|
2月前
|
机器学习/深度学习 人工智能 网络架构
深入理解深度学习中的卷积神经网络(CNN)
深入理解深度学习中的卷积神经网络(CNN)
64 1
|
2月前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)入门
【10月更文挑战第41天】在人工智能的璀璨星空下,卷积神经网络(CNN)如一颗耀眼的新星,照亮了图像处理和视觉识别的路径。本文将深入浅出地介绍CNN的基本概念、核心结构和工作原理,同时提供代码示例,带领初学者轻松步入这一神秘而又充满无限可能的领域。

热门文章

最新文章

下一篇
开通oss服务