欢迎大家来到IT世界,在知识的湖畔探索吧!
点击上方关注,All in AI中国
作者:John Olafenwa
人类非常善于认识事物,并创造新事物。长期以来,我们一直致力于通过训练计算机提高模仿人类识别事物的能力,但其创造新事物的能力却长期被人工智能系统团队所忽视。直到2014年,Ian Goodfellow创建了生成对抗网络(Generative Adversarial Networks)。在这篇文章中,我们将通过生成对抗网络的基本概述,使用生成对抗网络(GAN)生成特定数字的图像。
生成对抗网络(GAN)概述
想象一下,如果你是一名艺术家,你试图画出一幅非常逼真的奥巴马画像,这将会愚弄鉴别者,认为其画面是真实的照片。你第一次这样做时,鉴别者很容易发现你的图像是假的,然后你一次又一次地尝试,直到鉴别者被骗认为其图像是真实的照片。生成对抗网络(Generative Adversarial Networks)就是以这种方式工作,它由两个模型组成:绘制图像的生成器(Generator)和尝试区分真实图像和由鉴别器绘制的图像的鉴别器(Discriminator)。
以下是GAN Generator创建的样本。
GAN包括两个通用类,即随机生成任何类图像的无条件GAN和生成特定类的条件GAN。
在本教程中,我们将使用条件GAN,因为它们允许我们指定我们想要生成的内容。
工具设置
训练GAN通常很复杂,但是由于采用基于PyTorch的研究框架Torchfusion,这个过程将非常简单方便。
通过PyPi安装Torchfusion
安装PyTorch
如果你还没有安装torchfusion,请访问pytorch.org以获取PyTorch(https://pytorch.org/)的最新安装二进制文件。
现在完全安装好了!
接下来,导入两个类。
定义生成器网络和鉴别器:
在上文中,我们将要生成的图像的分辨率指定为1×32 ×32。
为生成器(Generator)和鉴别器(Discriminator)模型设置优化器
现在我们需要加载一个数据集,我们将尝试从中提取样本。在这种情况下,我们将使用MNIST。
下面我们创建一个学习者,TroChink拥有高度专业化和不同目的各种学习者。
现在,我们可以调用训练函数来训练这两个模型
通过将save_outputs_interval指定为500,学习者将在每500次批处理迭代后显示样本生成的输出。
这是完整的代码
经过20个训练周期之后,生成下图:
现在到了最激动人心的部分,使用训练有素的模型,你可以轻松生成特定数字的新图像。在下面的代码中,我们生成了一个数字6的新图像,你可以指定0到9之间的任何数字
结果:
生成对抗网络(GAN)是一个令人兴奋的研究领域,通过优化GAN算法的优化实现,Torchfusion使其变得非常简单。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/75072.html