在网上看到了几篇文章,介绍神经网络结构的,还不错,转一下
转:http://ufldl.stanford.edu/wiki/index.php/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
https://www.cnblogs.com/ranjiewen/p/6115272.html
http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html
理论性强:https://www.cnblogs.com/lliuye/p/9183914.html
一、keras代码及分析
#卷积层
model.add(Conv2D(filters=32,kernel_size=(3, 3),input_shape=(32, 32,3),activation='relu', padding='same')) #提取图像特征
model.add(Dropout(0.3))
model.add(MaxPooling2D(pool_size=(2, 2))) #最大池化,降采样
#卷积层
model.add(Conv2D(filters=64, kernel_size=(3, 3),activation='relu', padding='same'))#提取子图像的高级特征
model.add(Dropout(0.3))
model.add(MaxPooling2D(pool_size=(2, 2)))
#节点数据展开
model.add(Flatten()) #作为神经网络的输入层
model.add(Dropout(0.3))
#全连接层,隐藏层
model.add(Dense(1024, activation='relu'))
model.add(Dropout(0.3))
#全连接层,输出层
model.add(Dense(10, activation='softmax'))
二、神经网络结构分析
图1
上述代码所构建结构跟图1相似,无非就是输入层节点数和输出层节点数的不同而已。
图1中每个圆圈又包含如图2的结构
图2 单个神经元结构
具体数学表达式,看https://blog.csdn.net/i_love_home/article/details/50700056
代码中还涉及到dropout,大概意思如图3所示。
图3 Dropout的示意图