这个例子展示了如何使用DeepDreamImage.
与普雷雷普雷雷卷曲的神经网络googlenet。
Deep Dream是一种深度学习中的特征可视化技术,它综合了强烈激活网络层的图像。通过可视化这些图像,您可以突出显示网络学习到的图像特征。这些图像对于理解和诊断网络行为非常有用。
您可以通过将图层的特征朝向网络结束来生成有趣的图像。
该示例使用深度学习工具箱™和深度学习工具箱模型GoogLeNet网络生成图像。
加载一个预先训练好的GoogLeNet网络。如果是深度学习工具箱模型GoogLeNet网络金宝app支持包未安装,然后软件提供下载链接。
网= googlenet;
要生成类似于给定类的图像最接近,请选择完全连接的图层。首先,通过查看网络架构来定位该层的图层索引analyzeNetwork
.
分析(网)
然后选择完全连接的层,在这个例子中,142。
层= 142;layerName = net.Layers(层). name
layerName = ' loss3-classifier '
通过选择多个类,可以一次生成多个图像。通过设置选择要可视化的类渠道
作为这些类名的索引。
通道= [114 293 341 484 563 950];
类存储在类
属性的输出层(最后一层)。中的条目可以查看所选类的名称渠道
.
net.Layers(结束). class(渠道)
ans =6×1分类蜗牛老虎斑马城堡喷泉草莓
使用以下命令生成图像DeepDreamImage.
.此命令使用兼容的GPU(如果可用)。否则使用CPU。使用GPU需要并行计算工具箱™和支持的GPU设备。金宝app有关支持的设备的信息,请参见金宝appGPU支金宝app持情况(并行计算工具箱).
i = DeepDreamImage(网络,LayerName,频道);
|==============================================| | 迭代| |金字塔激活水平| | |力量 | | |==============================================| | 1 | 0.09 | 1 | | 2 | 0.67 | 1 | | 3 | 4.86 | 1 | | 4 | 8.41 | 1 | | 5 | 11.27 | 1 | | 6 | 14.86 | 1 | | 7 | 17.39 | 1 | | 8 | 22.84 | 1 | | 9 | 27.78 | 1 | | 10 | 34.39 | 1 | | 1 | 3.99 | 2| | 2 | 11.51 | 2 | | 3 | 13.82 | 2 | | 4 | 19.87 | 2 | | 5 | 20.67 | 2 | | 6 | 20.82 | 2 | | 7 | 24.01 | 2 | | 8 | 27.20 | 2 | | 9 | 28.24 | 2 | | 10 | 35.93 | 2 | | 1 | 34.91 | 3 | | 2 | 46.18 | 3 | | 3 | 41.03 | 3 | | 4 | 48.84 | 3 | | 5 | 51.13 | 3 | | 6 | 58.65 | 3 | | 7 | 58.12 | 3 | | 8 | 61.68 | 3 | | 9 | 71.53 | 3 | | 10 | 76.01 | 3 ||==============================================|
显示所有的图像一起使用imtile
.
图我= Imtile(i);imshow(i)
增加金字塔层的数量和每个金字塔层的迭代可以产生更详细的图像,但需要额外的计算。
您可以使用迭代的数量“NumIterations”
选择。将迭代次数设置为100。
迭代= 100;
生成强烈激活'Tiger'类(频道293)的详细图像。放“详细”
为false抑制有关优化过程的详细信息。
渠道= 293;我= deepDreamImage(净,layerName、通道...“详细”,错误的,...“NumIterations”、迭代);图imshow(我)
要生成更大且更详细的输出图像,您可以增加金字塔水平的数量和每个金字塔水平的迭代。
将金字塔级别的数量设置为4。
水平= 4;
生成一个详细的图像,强烈激活“城堡”类(频道484)。
频道= 484;我= deepDreamImage(净,layerName、通道...“详细”,错误的,...“NumIterations”、迭代...“PyramidLevels”、水平);图imshow(我)
googlenet
|DeepDreamImage.
|occlusionSensitivity
|imageLIME
|gradCAM