使用tensorflow1.0.1搭建StackGan用于文字生成各种花鸟图片
StackGan可以根据文字生成对应的图片,其文章为《StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks》
效果如下图所示:
github代码在此:https://github.com/hanzhanggit/StackGAN
根据Dependencies搭建,但在搭建过程中我发现一些不兼容的问题:
TypeError: zeros_initializer() takes at least 1 argument (0 given)
在stackgan的issues 13中有人解释是因为tensorflow的版本太低,更新tensorflow版本到1.0.1能解决这个问题,但1.0.1也有不兼容的问题,主要是1.0.1中的tf.concat的参数顺序调整了。所以这位仁兄给了他修正后bug后的StackGan。
你也可以自己手动修复,基本是在出现下面错误的tf.concat处的参数顺序调整下:
TypeError: Expected int32, got <prettytensor.pretty_tensor_class.Layer > of type 'Layer' instead.
例如:tf.concat(1, [c,z]) --> tf.concat[c,z], 1
同样在prettytensor的源码中也需要调整tf.concat的顺序,prettytensor中还有一些因为tensorflow版本无法运行的问题,可以参考百度,比如tf.pack已经改为tf.stack,tf.unpack 已经改为 tf.unstack。只要找到出错的那一行代码,进行替换或者删除即可。
最后根据顺序下载数据进行训练即可,如果tensorflow环境配置有问题可以参考之前的博客或者度娘。