深度学习100例-卷积神经网络(CNN)实现mnist手写数字识别 3

import keras
import tensorflow.keras.layers as layers

model = keras.models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),#卷积层1,卷积核3*3
    layers.MaxPooling2D((2, 2)),                   #池化层1,2*2采样
    layers.Conv2D(64, (3, 3), activation='relu'),  #卷积层2,卷积核3*3
    layers.MaxPooling2D((2, 2)),                   #池化层2,2*2采样
    
    layers.Flatten(),                              #Flatten层,连接卷积层与全连接层
    layers.Dense(64, activation='relu'),		   #全连接层,特征进一步提取
    layers.Dense(10)                               #输出层,输出预期结果
])
# 打印网络结构
model.summary()


​数据现在都处理好了,构建一个模型进行图片特征的提取,输出结果。

前面直接粘贴了博主的代码,导致报错,然后又在网上查了查,代码接下来要用到keras这个库,最后得出的结果和博主的一样,不用再次通过pip安装,好像是装tensorflow时就已经装上啦,不用再次安装。对于layers也做了导入的改动。

百度百科上解释的,Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化。

keras.models.Sequential(),Sequential是序列模型,是模型的线性组合,可以按照顺序依次添加相应的网络层。首先,网络的第一层是输入层,读取训练数据。参数 input_shape=(28, 28, 1), (28, 28, 1) 的输入张量, 这正是上面处理好的图像格式。

Layers.Conv2D()的意思构建卷基层,用于从输入的高维数组中提取特征。卷积层的每个过滤器就是一个特征映射,用于提取某一个特征,过滤器的数量决定了卷积层输出特征个数。32是过滤器的数量,为什么是32一直也没查到,activation是激活函数,通常设为relu,如果未指定任何值,则不应用任何激活函数。

卷积核大小:卷积核定义了卷积的大小范围,在网络中代表感受野的大小,相当于一个取景框的尺寸,用取景框来框像素,计算特征值,二维卷积核最常见的就是 3*3 的卷积核。一般情况下,卷积核越大,感受野越大,看到的图片信息越多,所获得的全局特征越好。但大的卷积核会导致计算量的暴增,计算性能也会降低。

活动地址:CSDN21天学习挑战赛

你可能感兴趣的:(人工智能,深度学习,python,cnn,神经网络)