TensorFlow练习27: 验证码生成器-从文本生成图像

前文<TensorFlow练习20: 使用深度学习破解字符验证码>是一个基于CNN的识别验证码练习,也就是根据图像预测文本。本帖就来个大反转,即从文本合成图像,看看能不能用深度学习练一个验证码生成器。

本帖使用的模型为GANs,如下图:

TensorFlow练习27: 验证码生成器-从文本生成图像
上图是根据描述生成花,本帖的问题相对简单,至少不用理解自然语言

生成验证码训练样本(取自TensorFlow练习20):

训练:

Not Done,码农外出,准备徒步,随身只带了一个小笔记本,以后再修改测试。

如要转载,请保持本文完整,并注明作者@斗大的熊猫和本文原始地址: http://blog.topspeedsnail.com/archives/11150

相关文章

《TensorFlow练习27: 验证码生成器-从文本生成图像》有7个想法

  1. while True:
    sess.run(tf.global_variables_initializer())
    这段代码有问题,应该sess.run(tf.global_variables_initializer())提到循环之前,而不是每次循环都初始化所有的训练参数,这样是永远都不能训练完的,循环500次之后隐约可以看到验证码的轮廓。

  2. Variable g_deconv2d/g_deconv2d_W_1/Adam/ does not exist, or was not created with tf.get_variable(). Did you mean to set reuse=None in VarScope? 请问博主这共享变量出问题该怎么解决?

    1. AdamOptimizer
      改成
      tf.train.GradientDescentOptimizer(learning_rate=0.0002).minimize(d_loss, var_list=d_vars)

      具体原理不太清楚,GradientDescent 像是梯度下降的优化方式

      1. 这个问题我也碰到了

        d_vars = [var for var in train_vars if ‘d_’ in var.name]
        g_vars = [var for var in train_vars if ‘g_’ in var.name]
        改成
        import re
        d_vars = [var for var in train_vars if re.match(‘^d_’,var.name)]
        g_vars = [var for var in train_vars if re.match(‘^g_’,var.name)]
        原因是由于if ‘d_’ in var.name并不能过滤掉所有的’g_*’
        还要将AdamOptimizer改成GradientDescentOptimizer,具体原因不详。

发表评论

电子邮件地址不会被公开。 必填项已用*标注