一共有两个模型。一个模型是把CNN的输出和GRU(RNN)连接在一起,序列的输出结果;还有一个是CNN的输出分成5个类,分别输出结果。
实验结果:   16000个训练数据 + 4000个测试数据
CNN + GRU : 93.2%
CNN 多分类: 99.99%

数据说明:
数据是Data Castle的验证码识别,type2的数据
运行说明:
1. 训练数据和模型在http://pan.baidu.com/s/1jIdnG70
   下载解压后,放到项目文件夹下


其它:
这两个模型只能用于5个字符的验证码。
这里训练的模型都没有分割图片(因为我懒),虽然效果还可以,不过只能适用于这种类型的验证码,所以还是要多加点各种类型的验证码会比较通用。
因为只能用于5个字符,所以不太通用,可以考虑用seq2seq包,把cnn作为encoder,rnn作为decoder,
rnn的每一个time step的输出结果作为后一个time step的输入,这样就可以很长了(虽然我感觉正确性堪忧)。【20170619 更正: 效果还是不错的,详细可以参照另一个项目】
另外我试了一下把cnn的输出直接复制5份作为GRU的输入,直接训练的效果很诡异,一直不收敛,大概是我参数调的有问题,所以我又多加了一个GRU,
尽可能的不要让输出的那一层的输入是一样的。