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模块(代码)

Task 3 字符识别模型
Task 3 字符识别模型

CNN模块优化结论

在训练完成后我们可以将训练过程中的损失和准确率进行绘制,如下图所示。从图中可以看出模型的损失在迭代过程中逐渐减小,字符预测的准确率逐渐升高。

Task 3 字符识别模型

ps: 从明天开始一定重新做人,好好搞,不临时抱佛脚,争取搞完能顺利把baseline跑过!