用Keras生成面部Python实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Keras生成面部Python实现相关的知识,希望对你有一定的参考价值。
参考技术A
可采用的机器学习数据集:
两者都包含人脸图像。我把这两个组合成一个文件夹。
最常听到的两种图像生成技术是生成对抗网络(GAN)和LSTM网络。
LSTM训练的时候速度非常慢,GAN训练会快得多。实际结果花不到半小时,模糊的面孔就会开始出现。随着时间的推移,图像会更加逼真。
有许多GAN变种。我使用的一种称为深度卷积神经网络(DCGAN)。DCGAN的优点在于它使用了卷积层。卷积神经网络目前是存在的最佳图像分类算法。
生成对抗网络是由一位名叫Ian Goodfellow的研究员发明的,并于2014年引入了GAN。
GAN非常强大。利用正确的数据,网络架构和超参数,您可以生成非常逼真的图像。
将来,一些高级版本的GAN或其他一些内容生成算法可能会让我们做一些很酷的事情:
但GAN是如何运作的呢?
GAN实际上不是一个神经网络,而是两个。其中之一是Generator。它将随机值作为输入并生成图像。
第二是discriminator。它试图确定图像是假的还是真的。
训练GAN就像一场竞赛。Generator试图在愚弄discriminator时变得尽可能好。discriminator试图尽可能地将假图像与真实图像分开。
这将迫使他们两个都改善。理想情况下,这将在某种程度上导致以下情况:
在现实中,您需要确保一切正常(数据、体系结构、超参数)。GAN对超参数值的微小变化非常敏感。
导入库
第一步是导入所有需要的Python库。
FaceGenerator类
这段Python代码初始化了训练所需的一些重要变量。
将训练数据加载到模型中
此函数将文件夹的名称作为输入,并将该文件夹中的所有图像作为numpy数组返回。所有图像的大小都调整为__init__函数中指定的大小。
Shape=(图像的数量,宽度,高度,通道)。
神经网络
这两个函数定义了generator和discriminator。
神经网络模型训练
对于每个epoch:
训练结束后:
此函数可用于在训练后生成新图像。
训练GAN很难,当你成功时,这种感觉会非常有益。
此Python代码可以轻松用于其他图像数据集。请记住,您可能需要编辑网络体系结构和参数,具体取决于您尝试生成的图像。
以上是关于用Keras生成面部Python实现的主要内容,如果未能解决你的问题,请参考以下文章
在 PyCharm 上使用 Python 3.8.5 版和 TensorFlow 和 Keras 库构建情商应用程序时遇到问题