Introduction
网络超参数包括:
输入图像像素、卷积层参数、池化层参数。
输入图像像素
应事先将图像统一压缩至 2 n 2^{n} 2n 大小。
好处:
- 同规格输入 才能得到 同规格输出;
- 防止无法输入全连接层(因为全连接层的输入大小已经被提前写死了);
- 便于多GPU并行。
卷积层参数
具体可查看TensorFlow中的API:tf.nn.conv2d
tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None)
卷积核大小 (kernel size)
有的说法是 “多用小卷积核替代大卷积核” ,仁者见仁智者见智吧。
小卷积核 | 大卷积核 | |
---|---|---|
优势 | 1.减少卷积参数总数;2.增强了网络容量和模型复杂度。 | 1.网络层数少;2.收敛快。 |
劣势 | 1.整个网络的总计算量增加(虽然对单个卷积层而言计算量不变,但卷积层数增加了,因此计算总量也就上去了); 2.增加了“梯度弥散”的风险(因为层数增加了)。 |
当 卷积核的横截面 与 输入图像的横截面 等大 时,卷积层 变成了 全连接层 。
卷积填充 (padding)
padding参数设置 | 含义 |
---|---|
“SAME” | 保证了 输入 与 输出 的size一致 |
“VALID” | 零填充,尊重原生计算结果 |
卷积步长 (stride)
卷积时在 图像每一维([batch, in_height, in_width, in_channels])的步长,这是一个一维的向量,长度4。
池化层参数
池化层的核一般也设置为 较小的size 。
常取的size值为 2 × 2 2\times2 2×2 , 3 × 3 3\times3 3×3 。
Note:
- pooling本质上是先划格子后微缩,并没有stride一说。如果非要有,那么stride=size。
[1] tf.nn.conv2d
[2] 深度学习: pooling (池化 / 降采样)