CNN的架构
卷积神经网络CNN的结构一般包含这几个层:
1)输入层:用于数据的输入
2)卷积层:使用卷积核进行特征提取和特征映射------>可以多次重复使用
3)激励层:由于卷积也是一种线性运算,因此需要增加非线性映射(也就是激活函数)
4)池化层:进行下采样,对特征图稀疏处理,减少数据运算量----->可以多次重复使用
5)Flatten操作:将二维的向量,拉直为一维的向量,从而可以放入下一层的神经网络中
6)全连接层:通常在CNN的尾部进行重新拟合,减少特征信息的损失----->DNN网络
用keras搭建CNN
Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。现在Keras已经和TensorFlow合并,可以通过TensorFlow来调用。
Keras 的核心数据结构是 model,一种组织网络层的方式。最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。
Sequential模型可以直接通过如下方式搭建:
from keras.models import Sequential
model = Sequential()
对于Keras操作中,可以简单地使用 .add() ,将需要搭建的神经网络的layer堆砌起来,像搭积木一样:
# 输入的大小
input_dim = (16,</