易语言神经网络验证码识别_基于卷积神经网络实现验证码识别(二)

介绍了generator–用于逐批次向训练提供数据和网络模型。使用了三层卷积神经网络,flatten层,全连接层,4个子全连接层和一个Merge层。这个网络在经过50个epoch,每个epoch32000张验证码训练后,到达了40%的准确率(categories_accuracy)。实际准确率达到了80%左右。文中会解释这两个值之间的差异。
我们首先使用keras框架来快速实现网络模型,验证模型的可行性。然后我们使用Tensorflow来再次实现这个网络模型,以比较两种实现方法的异同之处。

Keras提供了一种data feeding机制,允许你不必一次把全部数据集载入内存,而是可以根据需要,一次取出一个batch来进行训练。这就是它的Generator机制。

Generator

Keras在fit之外,还提供了一个fit_generator函数来启动训练,但fit_generator这个版本允许你不必一次将全部数据集输入,而是可以一次提供一个batch的数据以供训练。fit_generator的原型是:
fit_generator(self, generator, samples_per_epoch, nb_epoch, verbose=1, callbacks=[], validation_data=None, nb_val_samples=None, class_weight=None, max_q_size=10)

这里的关键是第二个参数,generator。它是一个生成器函数,其输出应该为:

  • 一个形如(inputs,targets)的tuple

  • 或者,一个形如(inputs, targets,sample_weight)的tuple。

所有的返回值都应该包含相同数目的样本。生成器将无限在数据集上循环。每个epoch以经过模型的样本数达到samples_per_epoch时,记一个epoch结束。下面是一个生成器的示例:

因有较多代码和图片,知乎编辑不便,请移步【余下全文】阅读。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值