主要内容

deepDreamImage

使用深梦可视化网络特征

描述

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

例子

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

例子

全部折叠

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

网= alexnet;

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

层=“conv1”;渠道= 1:25;我= deepDreamImage(净、图层、通道,...“PyramidLevels”,1,...“详细”, 0);数字i = 1:25 subplot(5,5,i) imshow(i (:,::,i))结束

输入参数

全部折叠

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

deepDreamImage仅支持带有万博1manbetx图像输入层的网络。

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

提示

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

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

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子: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

数据类型:逻辑

硬件资源,指定为逗号分隔对组成“ExecutionEnvironment”以及以下其中之一:

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

  • “图形”—使用GPU。使用GPU需要并行计算工具箱™和支持的GPU设备。万博1manbetx有关支持的设备的信息,请参见万博1manbetxGPU支万博1manbetx持情况(并行计算工具箱)如果并行计算工具箱或合适的GPU不可用,则软件返回错误。

  • “cpu”—使用CPU。

例子:“ExecutionEnvironment”、“cpu的

输出参数

全部折叠

输出图像,由存储在4-D阵列中的灰度或真彩色(RGB)图像序列指定。图像沿第四维度连接使图像的输出最大化渠道(k)我(:,:,:,k).您可以使用imshow(图像处理工具箱)

算法

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

当你用trainNetwork函数,或使用预测或验证函数时DAGNetworkSeriesNetwork对象时,软件使用单精度浮点运算执行这些计算。用于训练、预测和验证的功能包括trainNetwork预测分类,激活.当你同时使用cpu和gpu训练网络时,该软件使用单精度算法。

参考文献

[1]与TensorFlow DeepDreaming.https://github.com/tensorflow/docs/blob/master/site/en/tutorials/generative/deepdream.ipynb

介绍了R2017a