CNN网络搭建

CNN网络的基本架构
CNN网络搭建_第1张图片
首先来介绍一下keras这个深度学习框架

 Keras是一个用Python编写的开源神经网络库,是基于TensorFlow、CNTK或者Theano作为后端的高层神经网络API。
 准确的说,Keras并不能称为深度学习框架,因为它更像一个深度学习接口,建立在第三方深度学习框架之上,但是Keras在使用时非常方便,非常适合初学者。

卷积神经网络的结构

  1. 输入层:用于数据的输入
  2. 卷积层:使用卷积核进行特征提取和特征映射
  3. 激励层:由于卷积是一种线性运算,需要增加非线性映射
  4. 池化层:进行下采样,对特征图稀疏处理,减少数据运算量
  5. Flattern操作:将二维向量拉伸为一维向量,从而可以放入下一层神经网络中
  6. 全连接层:在CNN尾部进行重新拟合,减少特征信息的损失

搭建CNN网络

在Keras操作中,可以直接调用model.add(),将需要搭建的神经网络中的Layer堆砌起来。

from keras.models import Sequential
model = Sequential()

input_dim = (16, 8, 1)

model.add(Conv2D(64, (3, 3), padding = "same", activation = "tanh", input_shape = input_dim))# 卷积层
model.add(MaxPool2D(pool_size=(2, 2)))# 最大池化
model.add(Conv2D(128, (3, 3), padding = "same", activation = "tanh")) #卷积层
model.add(MaxPool2D(pool_size=(2, 2))) # 最大池化层
model.add(Dropout(0.1))
model.add(Flatten()) # 展开
model.add(Dense(1024, activation = "tanh"))
model.add(Dense(20, activation = "softmax")) # 输出层:20个units输出20个类的概率

你可能感兴趣的:(机器学习,深度学习)