问题标签 [generative-adversarial-network]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
619 浏览

deep-learning - 为生成对抗网络添加约束,例如没有两个头的狗

在 GAN 框架中,生成器会违反图像中未明确表示的真实分布的硬约束并不少见,例如,狗很少有超过一个头或 4 条腿。

鉴于没有头或腿计数神经元,并且人们对使用领域知识来挖掘这些规范并将它们用作判别器的输入不感兴趣,有什么方法可以在 GAN 或约束的上下文中挖掘和执行这些规范优化问题。

在我自己的例子中,数据由钢琴卷组成,即一个轴代表时间,T,另一个代表音符,N。规范的一些示例可能是:A)对于 T 中的每个 t,将只有一个正值 N,即每个时间步一个音符 B) 只有在 Note 轴上正值直接和间接邻居的计数等于或大于 2 时,才能存在正值 N。

例如

非常欢迎建议或建议!控制低级图像特征的一个例子。 https://arxiv.org/pdf/1611.07865.pdf

0 投票
2 回答
5657 浏览

tensorflow - Keras训练部分模型问题(关于GAN模型)

我在使用 keras 实现 GAN 模型时遇到了一个奇怪的问题。

使用 GAN,我们需要先构建 G 和 D,然后添加一个新的序列模型 (GAN),然后依次添加 (G)、add(D)。

当我这样做时,Keras 似乎反向传播回 G(通过 GAN 模型)D.train_on_batch,我得到了一个InvalidArgumentError: You must feed a value for placeholder tensor 'dense_input_1' with dtype float.

如果我删除GAN model(最后堆叠的 G 然后 D 顺序模型),它会d_loss正确计算。

我的环境是:

  • Ubuntu 16.04
  • 喀拉拉邦 1.2.2
  • 张量流GPU 1.0.0
  • keras 配置:{ "backend": "tensorflow", "image_dim_ordering": "tf", "epsilon": 1e-07, "floatx": "float32" }

我知道很多人已经成功地用 keras 实现了 GAN,所以我想知道我哪里错了。

错误信息:

0 投票
1 回答
24057 浏览

neural-network - 如何解释生成对抗网络中鉴别器的损失和生成器的损失?

我正在阅读人们对 DCGAN 的实现,尤其是 tensorflow中的这个

在该实现中,作者绘制了鉴别器和生成器的损失,如下所示(图片来自https://github.com/carpedm20/DCGAN-tensorflow):

在此处输入图像描述

在此处输入图像描述

判别器和生成器的损失似乎都没有遵循任何模式。不同于一般的神经网络,其损失随着训练迭代的增加而减少。训练 GAN 时如何解释损失?

0 投票
1 回答
4671 浏览

keras - 调整 GAN 超参数

在此处输入图像描述 在此处输入图像描述

如上两张图所示,在训练一个DCGAN模型时,梯度不稳定,波动很大。由于这个原因,模型无法绘制出完美的图像,甚至无法绘制出人眼可以识别的图像。有人能告诉我如何调整诸如 dropout 率或学习率之类的参数以使模型运行得更好吗?我将非常感谢你!这是我之前制作的模型(使用 Keras 构建):

鉴别器:

学习率为 0.0005

辍学率为0.6

batch_size 是 25

生成器和 GAN 模型:

学习率为 0.0001

动量为 0.9

0 投票
1 回答
210 浏览

python-3.x - 我需要一些关于 GAN 代码的解释

这是github代码

我不明白训练代码中的 torch.ones 和 torch.zeros 是什么。

任何人都可以解释一下吗?

0 投票
1 回答
4642 浏览

neural-network - GAN 损失函数的理想值是多少

IJ Goodfellow 最初提出的 GAN 使用以下损失函数,

因此,鉴别器试图最小化 D_loss,生成器试图最小化 G_loss,其中 X 和 Z 分别是训练输入和噪声输入。D(.) 和 G(.) 分别是鉴别器和生成器神经网络的映射。

正如原始论文所说,当 GAN 训练几个步骤时,它会达到生成器和判别器都无法改进且 D(Y) 处处为 0.5 的点,Y 是判别器的一些输入。在这种情况下,当 GAN 被充分训练到这一点时,

那么,为什么我们不能使用 D_loss 和 G_loss 值作为评估 GAN 的指标呢?

如果两个损失函数偏离了这些理想值,那么 GAN 肯定需要训练好或者架构需要设计好。正如原始论文中的定理 1 所讨论的,这些是 D_loss 和 G_loss 的最佳值,但是为什么不能将它们用作评估指标呢?

0 投票
0 回答
1796 浏览

python - GAN 网络光盘。loss减少和Gen.增加而不是减少

我的 RNN Gan 网络由两个 RNN 网络、一个生成器和一个鉴别器组成,用于生成音频。但它正在做的事情与它要做的事情完全相反,这真的很奇怪。鉴别器损失正在减少,而生成器损失正在增加,所以它正在做的事情完全相反。但它变得更加奇怪,因为损失实际上是 dec/inc 线性的,如果他们应该这样做,但显然他们不是。那么,这种行为是由什么原因引起的呢?我换东西了吗?

损失:https ://pastebin.com/78BmS8iK

鉴别器/生成器代码:

主要(结合两种模型):

训练(train()函数缩小):

0 投票
1 回答
692 浏览

neural-network - 在 GAN 中为生成器模型生成初始随机向量的正确方法?

线性插值经常与具有单位方差和零均值的高斯或均匀先验一起使用,其中向量的大小可以以任意方式定义,例如 100,以便为生成对抗神经 (GAN) 中的生成器模型生成初始随机向量。

假设我们有 1000 张图像用于训练,批量大小为 64。那么每个时期,需要使用与给定小批量的每个图像相对应的先验分布生成多个随机向量。但是我看到的问题是,由于随机向量和对应的图像之间没有映射关系,所以可以使用多个初始随机向量生成同一张图像。在本文中,它建议在一定程度上通过使用不同的球面插值来克服这个问题。

那么,如果最初生成与训练图像数量相对应的随机向量,并且在训练模型时使用最初生成的相同随机向量,会发生什么?

0 投票
0 回答
40 浏览

deep-learning - 通用对抗性干扰查询/问题

我是 Shashank V,是印度 ECE 的最后一年学生,正在从事一个关于专门针对人脸的图像分类的对抗性攻击的副项目。我在 CVPR 2017 中发现了这篇令人惊叹的论文标题“Universal adversarial perturbations”,并想尝试一下作者在 GitHub ( https://github.com/LTS4/universal ) 上慷慨提供的代码。

由于他们已经在 ImageNet 和 VGG-face 中最标准的人脸数据集上训练了他们的模型,因此我必须为 VGG-face 数据集计算我自己的对抗模板。这样做时,我发现输出这个对抗模板的变量“v”的所有值都是 NaN。
此外,造成这种情况的主要原因是当我发现使用的 deepFool 代码中的函数时

输出一个零值,导致这个 NaN。
我尝试了不同的图像数据类型来尝试解决这个问题,也尝试了不同的参数但徒劳无功。
我想知道是否有人可以帮助我,因为我想我已经走到了死胡同,任何建议都将不胜感激。
谢谢!

0 投票
1 回答
707 浏览

python - 对抗判别域适应(ADDA)

我正在尝试在 Keras 中实现 ADDA。这是我的代码:

但是,似乎 target_generator 没有连接到目标模型。我从预训练的源模型中加载目标模型,然后以 ADDA 方式训练鉴别器和组合模型。但是,目标模型没有改变。它始终具有与源模型相同的预测(accs 和 loss)。

以下是模型摘要:

我验证了 target_model 第二层的输出(按规范应该是 target_generator),它与 target_generator 的输出不同(在相同的输入上)。因此,这两个模型似乎没有像摘要中报告的那样连接。

有人可以帮我找出问题所在吗?

我正在使用 Keras 2,Tensorflow 后端。