通过这几天的学习,已经知道了如何进行数据的读取,虽然代码都不是自己写的,但能运行,已经很不错了,这节课的目的是构建一个字符识别模型,应用到本赛事中就是构建一个定长多字符分类模型。
在这之前,我们先学习一下卷积神经网络(Convolutional Neural Network, CNN),这是以前常听到的概念,但并不明白其中的含义,通过这几天的学习,已经开始逐渐了解。
CNN是一类特殊的人工神经网络,是深度学习中重要的一个分支。CNN在很多领域都表现优异,精度和速度比传统计算学习算法高很多。特别是在计算机视觉领域,CNN是解决图像分类、图像检索、物体检测和语义分割的主流模型。CNN每一层由众多的卷积核组成,每个卷积核对输入的像素进行卷积操作,得到下一次的输入。随着网络层的增加卷积核会逐渐扩大感受野,并缩减图像的尺寸。
CNN是一种层次模型,输入的是原始的像素数据。CNN通过卷积(convolution)、池化(pooling)、非线性激活函数(non-linear activation function)和全连接层(fully connected layer)构成。
我们的目的就是利用Pytorch框架来构建CNN字符识别模型。在Pytorch中构建CNN模型非常简单,只需要定义好模型的参数和正向传播即可,Pytorch会根据正向传播自动计算反向传播。通过学习,我们会构建一个非常简单的CNN,然后进行训练。这个CNN模型包括两个卷积层,最后并联6个全连接层进行分类,具体操作代码如下:
网友评论