tensroflow学习,CNN深度学习网络破解验证码续,测试效果(22)
发表于: 2018-07-18 23:14:38 | 已被阅读: 25 | 分类于: tensorflow
上一节,介绍了如何建立卷积深度学习网络(CNN),识别和破解captcha图形验证码,在最后,我们提到了训练耗时,事实的确如此啊,在我的云服务器上用 cpu 训练了近 24 小时,才勉强达到 80% 的正确率,本节将进行可视化的测试
,先用 python 的 captcha 库生成几张验证码图片,然后测试训练好的网络。
训练过程中的小插曲
以下几张图是训练过程中我截下来的。
发现了吧,训练到正确率超过 80% 的步数居然才 5000 多,反而变小了。
其实,并不是变小了。训练到大概 30000 步的时候,在我查看终端的输出时,
幸好我留了个心眼,在设计网络时留下了下面这句(全部代码参考上一节):
...
if step % 1000 == 0:
saver.save(sess,"./tmpModel/capcha_model_tmp.ckpt")
...
即每训练 1000 步,就保留一次参数。这样,即使训练杯意外终止了,我也可以接着上一次保存的参数继续训练,不然我就又得从头训练了。
保存验证码图片
我们先在工作目录新建文件夹
每次执行
python genACaptcha.py
就会在
加载训练好的模型
其实就是重复训练时的模型,不再需要计算损失和训练的部分。文件名取为
测试时,我们只需要执行
python test.py 【要识别的验证码图片名】
测试
首先,我们先生成一张验证码,文件名
然后执行
$ python test.py testImages/7f0N.jpg
7f0N
成功了!当然由于只有 83% 的正确率,CNN 深度学习网络也有识别错的情况发生,例如下面这张验证码,
$ python test.py testImages/0jkZ.jpg
0jF2 # 识别错误
网络继续训练下去,应该还能提高分辨率,目标 99% !!!