主要内容

deepDreamImage

使用深度梦境可视化网络特征

描述

= deepDreamImage (渠道返回强烈激活通道的图像数组渠道在网络内给出数值索引或名称的层的.这些图像突出了网络学习到的特征。

例子

= deepDreamImage (渠道名称,值返回带有一个或多个指定的附加选项的图像名称,值对参数。

例子

全部折叠

加载一个预先训练好的AlexNet网络。

Net = alexnet;

可视化第一个卷积层学习到的前25个特征(“conv1”)使用deepDreamImage.集“PyramidLevels”到1,这样图像就不会缩放。

层=“conv1”;通道= 1:25;I = deepDreamImage(网络,层,通道,...“PyramidLevels”, 1...“详细”, 0);数字imshow(i (:,:,:,i))结束

输入参数

全部折叠

训练过的网络,指定为SeriesNetwork对象或DAGNetwork对象。可以通过导入预训练的网络或使用trainNetwork函数。有关预训练网络的更多信息,请参见预训练的深度神经网络

deepDreamImage只支持有图金宝app像输入层的网络。

层进行可视化,指定为正整数、字符向量或字符串标量。如果是一个DAGNetwork对象,指定仅作为字符向量或字符串标量。指定作为要可视化激活的层的索引或名称。为了可视化分类层的特征,选择分类层之前的最后一个全连接层。

提示

选择ReLU或dropout层进行可视化可能不会产生有用的图像,因为这些层对网络梯度有影响。

查询的通道,指定为通道索引的标量或向量。如果渠道是一个矢量,每个通道的层激活都是独立优化的。可能的选择渠道取决于所选的层。对于卷积层,NumFilters属性指定输出通道的数量。对于完全连接的层,OutputSize属性指定输出通道的数量。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:deepDreamImage(网络层、通道“NumItetations”,100年,“ExecutionEnvironment”,gpu)生成图像使用每金字塔级100次迭代,并使用GPU。

图像初始化深梦。使用此语法可以查看如何修改图像以最大化网络层激活。初始图像的最小高度和宽度取决于所选图层之前的所有图层:

  • 对于网络末端的层,初始图像必须至少与图像输入层具有相同的高度和宽度。

  • 对于接近网络开始的层,初始图像的高度和宽度可以小于图像输入层。但是,它必须足够大,以便在选定的层上产生标量输出。

  • 初始图像的通道数必须与网络图像输入层的通道数相匹配。

如果您没有指定初始图像,该软件将使用从标准正态分布中绘制的像素的随机图像。另请参阅“PyramidLevels”

用于生成输出图像的多分辨率图像金字塔级别的数量,指定为正整数。增加金字塔层的数量以产生更大的输出图像,代价是额外的计算。若要生成与初始图像大小相同的图像,请将级别数设置为1

例子:“PyramidLevels”,3

每个金字塔级别之间的缩放,指定为值为> 1的标量。减少金字塔尺度,以将细颗粒细节纳入输出图像。调整金字塔规模可以帮助在网络的开始阶段为层生成更多信息的图像。

例子:“PyramidScale”,1.4

每个金字塔级别的迭代次数,指定为正整数。增加迭代次数以产生更详细的图像,代价是额外的计算。

例子:“NumIterations”,10

要应用于输出图像的缩放类型,指定为逗号分隔的对,由“OutputScaling”和以下其中之一:

价值 描述
“线性” 在区间[0,1]中缩放输出像素值。各层通道对应的输出图像,我(::,:,频道)是独立缩放的。
“没有” 禁用输出缩放。

缩放像素值会导致网络对输出图像进行错误分类。如果要对输出图像进行分类,请设置“OutputScaling”价值“没有”

例子:“OutputScaling”、“线性”

指示器,用于在命令窗口中显示进度信息,指定为逗号分隔的对,由“详细”或者1 (真正的)或0 ().显示的信息包括金字塔级别、迭代次数、激活强度。

例子:“详细”,0

数据类型:逻辑

硬件资源,指定为下列之一:

  • “汽车”-如果有GPU,请使用GPU;否则,请使用CPU。

  • “图形”—使用GPU。使用GPU需要并行计算工具箱™和受支持的GPU设备。金宝app有关受支持设备的信息,请参见金宝appGPU计算要求(并行计算工具箱)如果并行计算工具箱或合适的GPU不可用,那么软件将返回一个错误。

  • “cpu”—使用CPU。

输出参数

全部折叠

输出图像,由存储在4-D数组中的灰度或真彩色(RGB)图像序列指定。图像沿着的第四维进行拼接这样,图像的输出就最大化了渠道(k)我(:,:,:,k).可以使用显示输出图像imshow(图像处理工具箱)

算法

该函数实现了一个使用多分辨率图像金字塔和拉普拉斯金字塔梯度归一化生成高分辨率图像的深梦版本。有关拉普拉斯金字塔梯度归一化的更多信息,请参阅这篇博客文章:用TensorFlow做深度梦

当你训练一个网络使用trainNetwork函数,或者当您使用预测或验证函数时DAGNetwork而且SeriesNetwork对象,该软件使用单精度浮点运算来执行这些计算。用于训练、预测和验证的函数包括trainNetwork预测分类,激活.当您使用cpu和gpu训练网络时,该软件使用单精度算法。

参考文献

[1]用TensorFlow做深度梦.https://github.com/tensorflow/docs/blob/master/site/en/tutorials/generative/deepdream.ipynb

版本历史

在R2017a中引入