# 层
层结构是AADeepLearning核心组建,定义层方式如下
~~~
# 网络结构,数据将从上往下传播
net = [
{
# 层名
"name": "convolutional_1",
# 层类型,卷积层
"type": "convolutional",
# 卷积核个数
"kernel_number": 1,
# 卷积核高
"kernel_height": 2,
# 卷积核宽
"kernel_width": 2,
# 填充数,1:在图片最外层填充1圈0,2:填充2圈0,以此类推
"padding": 1,
# 滑动步长
"stride": 1,
# 权重初始化 gaussian/msra
"weight_init": "msra"
},
{
# 层名
"name": "relu_1",
# 层类型, 激活函数层
"type": "relu"
},
{
# 层名
"name": "pooling_1",
# 层类型,池化层
"type": "pooling",
# 模式 max(最大池化)/average(平均池化)
"mode": "max",
# 池化核高
"kernel_height": 2,
# 池化核宽
"kernel_width": 2,
# 滑动步长
"stride": 1
},
{
# 层名,无限制
"name": "flatten_1",
# 层类型,将数据展平为适合神经网络的结构,用于输入层或者卷积层和全连接层中间。 (60000, 1, 28, 28) ——> (784, 60000)
"type": "flatten"
},
{
# 层名
"name": "fully_connected_1",
# 层类型,全连接层
"type": "fully_connected",
# 神经元个数
"neurons_number": 256,
# 权重初始化方式 msra/xavier/gaussian
"weight_init": "msra"
},
{
# 层名
"name": "relu_2",
# 层类型(激活层) 可选,relu,sigmoid,tanh,
"type": "relu"
},
{
# 层名
"name": "fully_connected_2",
# 层类型,全连接层
"type": "fully_connected",
# 神经元个数
"neurons_number": 10,
# 权重初始化方式 msra/xavier/gaussian
"weight_init": "msra"
},
{
# 层名
"name": "softmax_1",
# 层类型,分类层,最终输出十分类的概率分布
"type": "softmax"
}
]
~~~
> 前向传播时:数据将从上往下传播,例如第一层的输出是第二层的输入,第二层的输出是第三层的输入,以此类推
> 反向传播时:数据将从下往上传播,例如第四层的输出是第三层的输入,第三层的输出是第二层的输入,以此类推
- 序言
- 安装
- 快速体验
- 配置
- 层(layer)
- 展平(flatten)
- 全连接(fully connected)
- 卷积(convolutional)
- 池化(pooling)
- 标准化(batch normalization)
- 失活(dropout)
- 循环(RNN)
- 长短期记忆(LSTM)
- 激活函数(activation)
- relu
- sigmoid
- tanh
- 损失(loss)
- 交叉熵损失(softmax)
- 折页损失(SVM或Hinge)
- 优化器(optimizer)
- 带动量学习率自适应(adam)
- 动量(momentum)
- 学习率自适应(rmsprop)
- 随机梯度下降(sgd)
- 模型(model)
- 保存(save)
- 载入(reload)
- 继续训练(continue train)
- 数据集(datasets)
- 手写数字(mnist)
- 时尚物品(Fashion-MNIST)
- 10种物体分类(cifar10)
- 100种物体分类(cifar100)
- 电影评论情感分类(imdb)
- 路透社新闻主题分类(reuters)
- 可视化(visualization)
- 损失曲线(loss)
- 准确率曲线(accuracy)