需求:验证码识别
方案:数据集和样本本身很小,使用全连接层神经网络预测
code:
数据集
- 图片数据集链接:https://pan.baidu.com/s/1ENAtDuyTriCa94CKBONHXg 提取码:77as(由于该链接中的数据不是压缩包的形式,非会员下载极其麻烦,所以不推荐这种方法)
- 自己使用代码生成验证码图片及csv文件(推荐)
- 直接使用tfecords文件(推荐)
文件介绍
- cap_input.py:是将数据集数据使用tfrecords文件保存的代码
- cap_train.py:是简单的模型设计文件
核心思想:
- 数据处理
- 验证码由字母转为0~26之间的某个数字进行代替,作为临时目标值
- 样本的目标值设置为[None,4*26]的one-hot编码形式,作为真实目标值。
- 模型创建:建立神经网络(全连接层神经网络)
- 损失函数:softmax配合交叉熵损失函数进行损失计算
- 损失函数求解:梯度下降求解损失函数。
- 预测判断:对于一个样本预测的“4”中如果“26”个元素概率最大的索引和真实值的对应位置的最大索引不同,则认为预测错误。