python小练习(087):基于keras快速搭建神经网络(实战篇)之数字校验码自动识别
本帖最后由 jerryxjr1220 于 2017-4-7 10:35 编辑之前的python小练习中已经完整介绍了基于keras如何快速搭建神经网络,今天就让我们运用学到的知识进行实战--自动识别数字校验码。
现在很多网站为了防止爬虫推出了很多各式各样的校验码,有数字、字母、文字等等不同组合,今天我们先从简单的开始,自动识别数字校验码。
我从某个网站下载了所有的数字校验码(我会放在附件中供大家下载测试,我已经分类完毕,并生成了对应的标签方便训练数据),形式如下:
可以看到校验码都是比较简单的数字(原始图片是彩色的,我进行了灰度处理成黑白的),由于数字的角度是随机的左右旋转,这就需要用机器学习来让python自动识别。(如果是不旋转的图片,则可以直接按照像素点读取并直接转换,也就不需要机器学习了)
先来看最后的训练及测试结果吧。
训练数据:
Epoch 1/2
4500/4500 [==============================] - 1s - loss: 0.2086 - acc: 0.9631
Epoch 2/2
4500/4500 [==============================] - 2s - loss: 0.0014 - acc: 1.0000
测试结果:
500/500 [==============================] - 0s
loss误差(有的翻译叫“成本”):0.000107079518784 accuracy准确率:1.0
可以看到,我用4500组数据进行训练,然后用剩下的500组数据进行测试,结果达到惊人的100%!{:5_98:}
源代码及详细注解:
**** Hidden Message *****
有兴趣的可以下载原始数字识别码进行测试,下载地址:
本帖最后由 jerryxjr1220 于 2017-4-7 10:36 编辑
有人可能会问“你上面的程序就搭了一个自动识别的模型,怎么做到真正的自动识别呢?”
其实,这个问题很简单,因为model模块还有一个预测的函数,只要把图片的像素值输入进去,就能直接输出预测结果,这个函数的格式如下:
output = model.predict(input_data)
就这么简单{:5_97:} 厉害了 厉害啊{:10_256:} 学习 楼主你好,其实我有一个小建议,就是楼主可以把你关于神经网络的这些期做成视频,因为好多新手往往被卡在入门上,懂了里面的原理,并且熟悉了几个实例后,在理解其他的知识可能会快一些,望采纳{:10_266:} 大补的小甲鱼粉 发表于 2017-4-24 23:51
楼主你好,其实我有一个小建议,就是楼主可以把你关于神经网络的这些期做成视频,因为好多新手往往被卡在入 ...
入门视频的话,其实网上已经有不少了,可以去优酷搜一下keras。
而且神经网络的搭建过程其实有点像一个玩黑箱子,就算做成视频也展现不出什么东西,能看到的也就是我在敲代码。
真正要理解神经网络其实要具备很多数学知识,比如线性代数,概率论,矩阵运算等等,这个才是卡在很多新手面前的难题,而这些靠视频是看不出的。 学习咯 数学不行看来是玩不了神经网络了{:5_102:}
感谢分享 鱼C有你更精彩 nx 学习学习 好东西 学习学习 看看,学习一下。 看看 看看源码 学习学习 {:10_257:}观摩观摩 学习学习
页:
[1]
2