假设我有一个CNN,它被训练用于分类不同动物的图像,这种模型的输出将是{{1>}空间维度中的一个点(输出点),其中{ {1}}是模型训练的动物类的数量;那么输出的转换方式是将它转换为n
参数的 one-hot 向量,然后从CNN的角度为图像提供正确的标签,但是让我们坚持使用n
维度点,即输入图像的概念。
然后假设我想采取这一点并以某种方式对其进行变换,以便最终输出是具有约束宽度和高度的图像(尺寸应该与不同的输入图像相同),其输出与输入图像,我该怎么做?
我基本上要求使用这种任务的方法(主要是训练),其中必须根据CNN的输出点重建图像 - 我知道图像永远不会相同,但我和当该点被输入到CNN-时,正在寻找产生与输入图像相同(或至少不那么不同)的输出点的图像。请记住,我要求的模型的输入是n
,并且输出是两个(或者如果它不是灰度的那么三个)尺寸张量。我注意到 deepdream 就是这样的事情(我想),但每次我都把" deepdream"和"生成"在Google中,几乎总是显示在线生成器,而不是实际技术;所以,如果对此有一些答案,我很乐意听到它们。
答案 0 :(得分:0)
输出标签不包含足以重建整个图像的信息。
引用DeepDream example ipython notebook:
制作“梦想”图像非常简单。本质上,它只是一个梯度上升过程,试图最大化特定DNN层激活的L2范数。
因此,算法修改现有图像,使得网络中某些节点的输出(可以在中间层,不一定是输出节点)变大。为此,它必须计算节点输出相对于输入像素的梯度。