Task 3 字符识别模型
CNN
CNN简介
卷积神经网络 (Convolutional Neural Networks) 简称CNN,CNN每一层由众多的卷积核组成,每个卷积核对输入的像素进行卷积操作,得到下一次的输入。随着网络层的增加卷积核会逐渐扩大感受野,并缩减图像的尺寸。
CNN是一种层次模型,输入的是原始的像素数据。CNN通过卷积(convolution)、池化(pooling)、非线性**函数(non-linear activation function)和全连接层(fully connected layer)构成。
CNN的具体作用
CNN作为一种层次模型,通过多次卷积和池化,CNN的最后一层将输入的图像像素映射为具体的输出。如在分类任务中会转换为不同类别的概率输出,然后计算真实标签与CNN模型的预测结果的差异,并通过反向传播更新每层的参数,并在更新完成后再次前向传播,如此反复直到训练完成 。
与传统机器学习模型相比,CNN具有一种端到端(End to End)的思路。在CNN训练的过程中是直接从图像像素到最终的输出,并不涉及到具体的特征提取和构建模型的过程,也不需要人工的参与。
可作为本次比赛启发的CNN
DenseNet,在训练是使用过SVHN作为训练样本
使用pytorch搭建CNN模型
利用pytorch构建CNN模块(代码)
CNN模块优化结论
在训练完成后我们可以将训练过程中的损失和准确率进行绘制,如下图所示。从图中可以看出模型的损失在迭代过程中逐渐减小,字符预测的准确率逐渐升高。