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天学习挑战赛