このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では,事前学習済みの畳み込みニューラルネットワークGoogLeNetでdeepDreamImage
を使用してイメージを生成する方法を説明します。
深梦はネットワーク層を強く活性化するイメージを合成する,深層学習での特徴可視化の手法です。これらのイメージを可視化することによって,ネットワークによって学習されたイメージの特徴を強調表示できます。これらのイメージは,ネットワーク動作の理解および診断に役立ちます。
ネットワークの最後の方の層の特徴を可視化することによって,興味深いイメージを生成できます。
この例では,深度学习工具箱™および深度学习工具箱模型GoogLeNet网络を使用してイメージを生成します。
事前学習済みのGoogLeNetネットワークを読み込みます。深度学习工具箱模型GoogLeNet网络サポートパッケージがインストールされていない場合,ダウンロード用リンクが表示されます。
网= googlenet;
特定のクラスに最も似たイメージを生成するには,全結合層を選択します。最初に,analyzeNetwork
を使用してネットワークアーキテクチャを表示して,この層の層インデックスを確認します。
analyzeNetwork(净)
次に,全結合層を選択します。142年この例ではです。
层= 142;layerName = net.Layers(层). name
layerName = ' loss3-classifier '
複数のクラスを選択することによって,一度に複数のイメージを生成できます。可視化するクラスを選択するには,渠道
をこれらのクラス名のインデックスに設定します。
通道= [114 293 341 484 563 950];
クラスは,出力層(最後の層)の类
プロパティに格納されます。渠道
のエントリを選択することによって,選択されたクラスの名前を表示できます。
net.Layers(结束). class(渠道)
ans =6×1分类蜗牛老虎斑马城堡喷泉草莓
deepDreamImage
を使用してイメージを生成します。このコマンドでは,互換性のあるGPUが利用できる場合は,そのGPUが使用されます。そうでない場合はCPUが使用されます。GPUで実行するには,以3.0计算能力上のCUDA®対応NVIDIA GPU®が必要です。
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
を使用して,すべてのイメージをまとめて表示します。
figure I = imtile(I);imshow(我)
ピラミッドレベルの数およびピラミッドレベル1つあたりの反復回数を増やすと,計算量が増加しますが,より詳細なイメージを生成できます。
反復回数は,“NumIterations”
オプションを使用して増やすことができます。100年反復回数をに設定します。
迭代= 100;
“老虎”クラス(チャネル293)を強く活性化する詳細なイメージを生成します。最適化プロセスの詳細を表示しないようにするには,“详细”
を假に設定します。
渠道= 293;我= deepDreamImage(净,layerName、通道...“详细”假的,...“NumIterations”、迭代);图imshow(我)
より大きく詳細な出力イメージを生成するには,ピラミッドレベルの数とピラミッドレベル1つあたりの反復回数の両方を増やします。
ピラミッドレベルの数を4に設定します。
水平= 4;
‘城堡’クラス(チャネル484)を強く活性化する詳細なイメージを生成します。
渠道= 484;我= deepDreamImage(净,layerName、通道...“详细”假的,...“NumIterations”、迭代...“PyramidLevels”、水平);图imshow(我)