Deep learning 在caffe中用GAN方法扩展CNN

Deep learning 在caffe中用GAN方法扩展CNN,deep-learning,caffe,Deep Learning,Caffe,我有一个网络,可以根据输入图像估计深度图。简而言之,我有一个输入图像和它对应的地面真相(深度图)。让我们把这个网络称为生成器网络。到现在为止,一直都还不错。现在我听说了“生成性对抗网络”,我想我可以通过添加一个鉴别器来改进我的网络,如下所示: input -> neural network -> estimated_depth_image -> discriminator -> output: true or false depending on real or synt

我有一个网络,可以根据输入图像估计深度图。简而言之,我有一个
输入图像
和它对应的
地面真相
(深度图)。让我们把这个网络称为
生成器
网络。到现在为止,一直都还不错。现在我听说了“生成性对抗网络”
,我想我可以通过添加一个
鉴别器来改进我的网络,如下所示:

input -> neural network -> estimated_depth_image -> discriminator -> output: true or false depending on real or synthesised 
                                                     ^
                                                     |
                                           ground_truth_depth_image
但是,我如何在将标签为0的估计深度图像和将标签为1的地面真实图像输入鉴别器之间切换。这可能吗?如果是,您将如何处理


我的问题是,我如何使用caffe将我的
新数据集
同时送入
鉴别器
网络?据我所知,这在caffe中不容易做到,因为您需要两个不同的优化器(一个用于生成器,另一个用于鉴别器)。您还需要只在G中进行前向传递,然后在D中使用G的输出和一些实际深度数据。我建议您使用Tensorflow、torch或pytorch来完成此操作。

我认为您会在交叉验证或数据科学方面找到更好的答案。这个问题离实际的编码问题有点远。Tensorflow、Torch或Pytorch不是一个选项。为什么需要两个不同的优化器?我想做的事情有意义吗?我已经读到,GAN实际上是用于无监督学习,而不是用于上述任务中的监督学习。唯一让我感到困难或困惑的是两个不同的优化器。GAN是两个经过联合训练的网络。您将鉴别器的损失作为负损失反馈给生成器(他们基本上是在玩一个minmax游戏)。否则,体系结构就失去了GANs的意义。我不确定你想构建什么,但它听起来不像一个GAN。最后,如果你想生成代表“真实数据”的输出,就使用GAN;它们对于优化有监督的学习没有用处。所以从技术上讲,你有一个由训练数据表示的分布p,GAN的目标是生成与p不可区分的数据q。GAN也可以用于监督任务,一个例子是pix2pix文件。在这种情况下,您不仅要用对抗性损失训练生成器,还要用重建损失(例如欧几里德损失)训练生成器。是的,这是绝对可能的,而且已经完成了。这是pix2pix论文()的链接,这是我自己的另一篇论文,我们使用了类似的想法: