- CNN本质:一种输入到输出的映射,能够学习大量的输入和输出之间的映射关系,不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积网络加以训练,网络就具有输入输出对之间的映射能力
- 卷积层:通过卷积核与输入进行卷积运算,提取局部特征
- 池化层:减少特征图的维度,减少数据的运算量,突出特征
- 全连接层:把以前的局部特征通过权值矩阵,组装成完整的图,整合完成后,输出一个分类值。全连接层之前是提取特征值,全连接层的作用就是分类
- 使用CNN进行手写识别:
(1)加载数据集:使用keras.datasets模块中的mnist导入手写数据(x_train, y_train), (x_test, y_test)=mnist.load_data(),将特征值变为0-1之间
(2)创建神经网络模型:model=Sequential()。创建后添加卷积层Conv2D(卷积核个数,卷积核大小,输入,激活函数),再添加池化层MaxPool2D()。为避免模型过拟合,将数据随机丢弃一部分Dropout(0.2)。再添加卷积层,池化层,将输出的数据一维化:Flatten()。添加全连接层Dense()。指定优化器及损失函数model.compile(优化器,损失函数)
(3)对模型进行训练:将训练的标签进行one-hot编码to_catego

本文介绍了如何使用卷积神经网络(CNN)进行手写识别。首先,通过keras.datasets导入MNIST数据集并归一化特征。接着,构建CNN模型,包含卷积层、池化层和全连接层,以提取特征和进行分类。模型训练过程中采用dropout防止过拟合,并使用优化器和损失函数调整。最后,对模型进行验证并保存,以便后续快速使用。
最低0.47元/天 解锁文章
1443

被折叠的 条评论
为什么被折叠?



