谷歌 Deep Dream 艺术:如何在神经网络中选择一个层并对其进行增强

2023-11-25

我对 Google 最近发表的一篇博客文章感兴趣,该文章描述了nn创造艺术。

我对一项技术特别感兴趣:

“在这种情况下,我们只需向网络提供任意图像或照片,然后让网络分析该图片。然后我们选择一个层并要求网络增强它检测到的任何内容。网络的每一层都处理不同抽象级别的特征,因此我们生成的特征的复杂性取决于我们选择增强哪一层。例如,较低的层往往会产生笔划或简单的装饰图案,因为这些层对边缘及其方向等基本特征敏感。

该帖子是http://googleresearch.blogspot.co.uk/2015/06/inceptionism-going-deeper-into-neural.html?m=1.

我的问题:这篇文章将其描述为一个“简单”的案例——是否有一个神经网络的开源实现可以在相对即插即用的过程中用于此目的? 对于所描述的技术,网络是否需要进行训练?

毫无疑问,对于本文中提到的其他技术,需要一个已经在大量图像上训练过的网络,但对于我所描述的技术,是否已经存在某种开源网络层可视化包?


UPD:谷歌发布了他们如何实现它的更多详细说明:https://github.com/google/deepdream/blob/master/dream.ipynb

还有另一个项目:https://317070.github.io/Dream/

如果你读过1,[2],[3],[4] 从您的链接中,您会看到他们使用了 Caffe。该框架已经包含了可供使用的经过训练的网络。您不需要手动训练任何内容,只需使用 .sh 脚本下载模型即可models/ folder.

你想要“即插即用的过程”,这并不容易,因为除了框架之外,我们还需要他们使用的脚本的代码,可能还需要修补 Caffe。我尝试用他们的描述做一些东西。 Caffe 有 Python 和 Matlab 接口,但其内部还有更多内容。

下面的文字描述了我对如何实现它的想法。我不确定我的话,所以这更像是邀请我一起研究,而不是“即插即用过程”。但由于还没人回答,所以我就放在这里了。也许有人会修复我。

So

据我了解,他们进行了优化

[sum((net.forwardTo(X, n) - enchanced_layer).^2) + lambda * R(X)] -> min

IE。寻找这样的输入X以便网络的特定层将产生“增强”数据而不是“原始”数据。

存在正则化约束R(X): X应该看起来像“自然图像”(没有高频噪声)。

X是我们的目标图像。初始点X0是原始图像。forwardTo(X, n)是我们的网络在层中产生的n当我们用 X 提供输入时。如果谈论咖啡,您可以进行全前向传递(net.forward)并查看您感兴趣的斑点(net.blob_vec(n).get_data()).

enchanced_layer- 我们采用原始图层斑点并在其中“增强”信号。这是什么意思,我不知道。也许他们只是将值乘以系数,也许是其他东西。

Thus sum((forwardTo(X, n) - enchanced_net).^2)当您的输入图像在图层中准确生成您想要的内容时,该值将变为零n.

lambda是正则化参数,R(X) is how X看起来很自然。我没有实现它,我的结果看起来很吵。至于它的公式,你可以在[2]中查找。

我用Matlab和fminlbfgs来优化。

关键部分是找到上面公式的梯度,因为问题的维度太多,无法用数值方法计算梯度。

正如我所说,我没能找到梯度R(X)。至于公式的主要部分,我设法这样找到:

  • 在图层上设置 diff blobn to forwardTo(X, n) - enchanced_net。 (参见caffe文档set_diff and set_data, set_data用于转发和等待数据set_diff用于反向传播并等待数据错误)。
  • Perform partial从层反向传播n-1到输入。
  • 输入 diff blob 将包含我们需要的梯度。

Python 和 Matlab 接口不包含部分反向传播,但 Caffe C++ 内部包含它。我在下面添加了一个补丁,使其可以在 Matlab 中使用。

第四层增强结果:

Result of enhancing the 4th layer

我对结果并不满意,但我认为与这篇文章有一些共同点。

  • 这是“按原样”生成上面图片的代码。入口点是“run2.m”,“fit2.m”包含适应度函数:https://github.com/galchinsky/caf
  • 这是 Matlab 接口的 caffe 补丁,使部分反向传播可用:https://gist.github.com/anonymous/53d7cb44c072ae6320ff
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

谷歌 Deep Dream 艺术:如何在神经网络中选择一个层并对其进行增强 的相关文章

  • 从文本文件中提取与输入单词最相似的前 N ​​个单词

    我有一个文本文件 其中包含我使用 BeautifulSoup 提取的网页内容 我需要根据给定的单词从文本文件中找到 N 个相似的单词 流程如下 从中提取文本的网站 https en wikipedia org wiki Football h
  • 实例标准化与批量标准化

    据我所知 批量归一化通过将激活转向单位高斯分布来帮助加快训练速度 从而解决梯度消失问题 批量归一化行为在训练 使用每个批次的平均值 var 和测试时间 使用训练阶段的最终运行平均值 var 时应用不同 另一方面 实例归一化充当本文提到的对比
  • 将数值和分类数据混合到具有密集层的 keras 序列模型中

    我在 Pandas 数据框中有一个训练集 我将此数据框传递到model fit with df values 以下是有关 df 的一些信息 df values shape 981 5 df values 0 array 163 0 6 83
  • 帮助我在 Python 中实现反向传播

    EDIT2 新的训练集 Inputs 0 0 0 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 4 0 1 0 0 0 1 0 1 0 1 0 2 0 1 0 3 0 1 0 4 0 2 0 0 0 2 0 1 0 2 0 2
  • 如何制作 U 矩阵?

    为了可视化一个 U 矩阵到底是如何构建的自组织映射 http en wikipedia org wiki Self organizing map 更具体地说 假设我有一个 3x3 节点的输出网格 已经经过训练 我如何从中构造一个 U 矩阵
  • 具有多个输入的 Keras TimeDistributed 层

    我正在尝试使以下代码行正常工作 low encoder out TimeDistributed AutoregressiveDecoder X tf embeddings Where AutoregressiveDecoder是一个需要两个
  • 如何防止 Keras 在训练期间计算指标

    我正在使用 Tensorflow Keras 2 4 1 并且有一个 无监督的 自定义指标 它将我的几个模型输入作为参数 例如 model build model returns a tf keras Model object my met
  • 对图像使用 Pixellib 自定义训练时出现 input_image 元形状错误

    我正在使用 Pixellib 来训练自定义图像实例分割 我创建了一个数据集 可以在下面的链接中看到 数据集 https drive google com drive folders 1MjpDNZtzGRNxEtCDcTmrjUuB1ics
  • 在tensorflow .ckpt文件中使用预训练模型

    我有一个 ckpt 文件 我只想得到 cnn 的权重 我已经从 ckpt 检查点文件中进行了训练 inception resnet v2 2016 08 30 import tensorflow as tf saver tf train S
  • 支持向量机或人工神经网络进行文本处理? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 对于某些文本处理项目 我们需要在支持向量机和快速人工神经网络之间做出选择 它包括上下文拼写纠正 然后将文本标记为某些短语及其同义词 哪种方
  • 如何在 PyTorch 中对子集使用不同的数据增强

    如何针对不同的情况使用不同的数据增强 转换 Subset在 PyTorch 中吗 例如 train test torch utils data random split dataset 80000 2000 train and test将具
  • 如何在 Keras 中将多个数据集与一个模型一起使用?

    我正在尝试使用 LSTM 网络通过 Keras 和 Tensorflow 进行外汇预测 我当然希望它能够在很多天的交易中进行训练 但要做到这一点 我必须给它提供具有大跳跃和无运动阶段的连续数据 当市场收盘时 这并不理想 因为它变得由于这些跳
  • 无法将大小为 1665179 的数组重塑为形状 (512,512,3,3)

    该脚本用于进行检测 权重文件是 yolov4 coco 预训练模型 可以在这里找到 https drive google com file d 1cewMfusmPjYWbrnuJRuKhPMwRe b9PaT view https dri
  • 梯度下降有哪些替代方案?

    梯度下降存在局部极小值问题 我们需要运行梯度下降指数次来找到全局最小值 谁能告诉我梯度下降的任何替代方案及其优缺点 Thanks See 我的硕士论文 https arxiv org pdf 1707 09725 pdf page 96对于
  • 如何确定 Keras Conv2D 函数中的“filter”参数

    我刚刚开始我的 ML 之旅 并且已经完成了一些教程 对我而言 不清楚的一件事是如何为 Keras Conv2D 确定 过滤器 参数 我读过的大多数资料只是将参数设置为 32 没有任何解释 这只是经验法则还是输入图像的尺寸起作用 例如 CIF
  • Caffe 的 LSTM 模块

    有谁知道 Caffe 是否有一个不错的 LSTM 模块 我从 russel91 的 github 帐户中找到了一个 但显然包含示例和解释的网页消失了 以前是http apollo deepmatter io http apollo deep
  • 在监督分类中,使用partial_fit() 的MLP 比使用fit() 的表现更差

    我正在使用的学习数据集是灰度图像flatten让每个像素代表一个单独的样本 第二张图像在训练后将被逐像素分类Multilayer perceptron MLP 前一个分类器 我遇到的问题是MLP当它一次接收到所有训练数据集时表现更好 fit
  • ValueError:张量:(...)不是该图的元素

    我正在使用 keras 的预训练模型 在尝试获取预测时出现错误 我在烧瓶服务器中有以下代码 from NeuralNetwork import app route uploadMultipleImages methods POST def
  • 为什么LeNet5使用32×32图像作为输入?

    我知道mnist数据集中的手写数字图像是28 28 但是为什么LeNet5中的输入是32 32 您的问题已在原纸 http yann lecun com exdb publis pdf lecun 98 pdf 卷积步骤始终采用比前一层的特
  • 如何手动计算分类交叉熵?

    当我手动计算二元交叉熵时 我应用 sigmoid 来获取概率 然后使用交叉熵公式并平均结果 logits tf constant 1 1 0 1 2 labels tf constant 0 0 1 1 1 probs tf nn sigm

随机推荐

  • 如何使用 TarsosDSP 获得 MFCC?

    我到处搜索 但不知道如何在 Android 上使用 TarsosDSP 提取 MFCC 特征 我知道如何从文件中获取 FFT 有什么帮助吗 查看官方github页面 MFCC 测试文件 public class MFCCTest priva
  • 人们对动态语言有何吸引力? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 Locked 这个问题及其
  • 如何为 Blazor 页面实现自定义授权过滤器

    Blazor 服务器端 NET Core 3 1 x 查看有关授权的示例 我正在尝试获取自定义授权过滤器 属性的解决方案 我只需要在授权期间检查用户身份 https learn microsoft com en us aspnet core
  • Visual Studio 2017不支持C11新功能_Generic

    谁能告诉我为什么 Visual Studio 2017 不支持 C11 新功能 Generic 我发现这是一个非常有用的功能 但无法在 Visual Studio 2017 中使用 下面是示例代码 include
  • Terraform 在应用时从远程 URL 下载本地文件并在销毁时删除文件

    在创建实际的 lambda 资源之前 我需要从 URL 下载 lambda 存档文件 并且在运行 terraform destroy 时需要删除该文件 基本上是从远程 URL 创建的本地文件资源 我目前使用的是null resource a
  • 在 MATLAB / Octave 中为 n > 100 创建更快的斐波那契函数

    我有一个函数可以告诉我斐波那契数列中的第 n 个数字 问题是 当试图在斐波那契数列中找到更大的数字时 它变得非常慢 有人知道我该如何解决这个问题吗 function f rtfib n if n 1 f 1 elseif n 2 f 2 e
  • Android 共享资源文件夹中的图像

    我正在尝试共享资产文件夹中的图像 我的代码是 Intent share new Intent Intent ACTION SEND share setType image jpg share putExtra Intent EXTRA ST
  • app.config 的自定义配置 - 部分集合?

    我的头实在是太痛了 我以前做过这件事 但没有这么 深入 或复杂 我尝试了不同的方法来实现这一点 但都失败了 所以 这是我想要在 app config 中使用的自定义 XML
  • 将内部类与 CRTP 一起使用

    是否有可能在 CRTP 中使用内部类或枚举 前任 template
  • 抛出 HttpException 总是会发回 HTTP 500 错误?

    我试图向客户端返回 HTTP 403 错误代码 我读过 HttpException 是完成此任务的最干净的方法 但它对我不起作用 我从这样的页面中抛出异常 throw new HttpException 403 You must be lo
  • Hibernate 4.1.9:我需要哪些 jar 文件?

    我开始学习Hibernate框架是从 Hibernate 3 2 简单步骤 书 但我下载了最新版本的 Hibernate 即 4 1 9 根据书 我们需要将许多必要的 jar 添加到类路径中 例如 Anttr 2 7 6 jar asm j
  • iPhone:OpenAL 和 AudioToolbox 泄露

    我与 OpenAL 合作在我的应用程序中播放声音 当我使用测试它时Instruments工具 它发现泄漏 泄露对象 GeneralBlock 512大小 512 字节负责库 AudioToolbox责任框架 AU3DMixerEmbedde
  • 如何计算处理图像所需的内存?

    我想对用户上传的图像进行一些限制 以便处理它们的脚本永远不会耗尽内存 占用更多内存的图像是分辨率更高的图像 它们不需要很大的字节大小 例如 分辨率为 4000x2500 的 46kb 图像和一些透明胶片 PNG 需要大约 90mb 来调整其
  • 优先级为 99 的 SCHED_FIFO 进程被抢占?

    这是来自 sched setscheduler 2 Linux 手册页 在实时策略之一 SCHED FIFO SCHED RR 下调度的进程的 sched priority 值在 1 低 到 99 高 范围内 SCHED FIFO 进程会一
  • 通过 php 脚本发送 iOS 通知:“无法设置私钥文件”

    我使用了著名的 Ray Wanderlich 的 php 脚本tutorial在开发阶段发送推送通知 在我创建 pem 文件 来自 p12 和 aps development cer 文件 并在 php 脚本中提到设备令牌后 它们被正确触发
  • 如何在黑莓上编写短信应用程序?

    任何人都可以帮我编写在黑莓中发送和接收短信的应用程序吗 如果你可以给我提供一些代码片段 发送短信 import net rim device api io import net rim device api system import ja
  • 将子查询作为逗号分隔值的 Linq 查询

    在我的应用程序中 一家公司可以有许多员工 每个员工可能有多个电子邮件地址 数据库模式将表关联起来 如下所示 公司 gt CompanyEmployeeXref gt 员工 gt EmployeeAddressXref gt 电子邮件 我正在
  • JPanel 在另一个里面

    我的 JPanel 位于另一个 JPanel 中时遇到问题 我不知道为什么 但结果是一个简单的正方形 但尺寸不正确 这是为什么 import java awt Color import java awt Container import j
  • Spring-Boot WebMvcTest:如何使用 Authentication 对象参数测试控制器方法?

    这是这个问题的延续Spring WebMvcTest如何模拟身份验证 我正在尝试在 Spring boot 中测试接收一个控制器方法Authentication对象作为参数 控制器是一个RestController with CrossOr
  • 谷歌 Deep Dream 艺术:如何在神经网络中选择一个层并对其进行增强

    我对 Google 最近发表的一篇博客文章感兴趣 该文章描述了nn创造艺术 我对一项技术特别感兴趣 在这种情况下 我们只需向网络提供任意图像或照片 然后让网络分析该图片 然后我们选择一个层并要求网络增强它检测到的任何内容 网络的每一层都处理