英雄联盟马匹查询器啥意思 英雄联盟怎么玩的( 七 )




我们准备加载一个马的随机图像, 看看我们的生成器产生了什么 。 首先, 我们需要导入PIL和torchvision:


然后我们定义一些输入转换, 以确保数据以正确的形状和大小进入网络:


让我们打开马的图片(看图片2.7):




图 2.7 一个男人骑着一匹马, 但是马并不想让他骑


可以看到有个男人在马上(从图片上看, 不用看很长时间 。 )总之, 让我们通过预处理, 把它变成一个形状合适的变量:




我们现在不应该关心细节 。 重要的是我们要从整体观察 。 此时, 可以将批处理输入到我们的模型:




批处理输出现在是生成器的输出, 我们可以将其转换回图像:




但是, 谁会那样去骑斑马?由此产生的图像(图2.8)并不完美, 但考虑到网络发现有人(某种程度上)骑在马背上有点不寻常 。 值得一提的是, 学习过程还没有经过直接的监督, 人类已经划定了数以万计的马匹, 或者手动用Photoshop加工了成千上万的斑马条纹 。 生成器已经学会了产生一种图像, 该图像会使鉴别者误以为是斑马, 而且图像上没有任何痕迹(显然, 鉴别者从未参加过牛仔竞技表演) 。




图 2.8 一个男人骑着斑马, 但是斑马不想让他骑


许多其他已开发的有趣生成器使用对抗性训练或其他方法 。 他们中的一些人能够创造出不存在的人的真实面孔;其他人可以把草图翻译成想象中风景的真实画面 。 生成模式也正在探索生产真正的声音, 可信的文本, 和愉快的音乐 。 这些模型很可能是未来支持创意过程的工具的基础 。




到目前为止, 我们已经尝试了一个模型, 观察了图像和模型如何生成新的图像 。 我们将以一个模型结束我们的旅程, 这个模型包含了一个更基本的要素:自然语言 。




为了获得涉及自然语言的模型的第一手经验, 我们将使用RuoTian Luo慷慨提供的预训练图像字幕模型, 它是Andrej Karpathy的NeuralTalk2模型的实现 。 当呈现自然图像时, 这种模型会生成一个描述场景的英文字幕, 如图2.9所示 。 这个模型是在一个大的图像数据集上训练的, 同时还有相应的句子描述:例如, “一只斑猫靠在一张木头桌子上, 一只爪子在激光鼠标上, 另一只爪子在一台黑色笔记本电脑上 。 ”




这个字幕模型有两个相连的部分 。 模型的前半部分是一个网络, 它学习生成场景的“描述性”数字表示(Tabby cat、laser mouse、paw), 然后将其作为下半部分的输入 。 第二部分是一个递归神经网络, 它通过把这些数字描述放在一起生成一个连贯的句子 。 模型的两半部分在图像-说明对上一起训练 。


模型的后半部分称为递归, 因为它在随后的向前传递中生成其输出(单个字), 其中每个向前传递的输入包括前一个向前传递的输出 。 这就产生了下一个单词对先前生成的单词的依赖性, 正如我们在处理句子或序列时所期望的那样 。








让我们用horse.jpg图片试试 。 上面写着, “一个人在海滩上骑马 。 ”很恰当 。


现在, 为了好玩, 让我们看看我们的CycleGAN是否也能骗到这个NeuralTalk2模型 。 让我们在数据文件夹中添加zebra.jpg图像, 然后重新运行模型:“一群斑马站在一块地里 。 ”好吧, 它把动物弄对了, 但它在图像中看到了不止一只斑马 。 当然, 这不是神经网络曾经见过的斑马的姿势, 网络也没有见过骑在斑马上的骑手(有一些虚假的斑马图案) 。 此外, 在训练数据集中, 斑马很可能是成群出现的, 因此我们可能需要检验一些偏差 。 另外, 字幕网络也没有描述这个骑手 。 同样, 这可能是出于同样的原因:在训练数据集中, 网络没有显示一个骑斑马的骑手 。 无论如何, 这是一个令人印象深刻的壮举:我们用一个不可能的情况生成了一个假图像, 而且字幕网络足够灵活, 能够正确地显示主题 。


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。