ランダムな画像を生成する
(x, y)の画素の位置を(r, g, b)のカラー値にマップするネットワークを無作為抽出することによって,画像を生成する.
画素座標からより高次元の特徴空間にマップした後RGBカラー空間にマップする一連の層からネットワークを作成する.
In[1]:=
![Click for copyable input](assets.ja/generate-random-images/In_86.png)
net = NetChain[{30, Tanh, 3, Tanh, 3, LogisticSigmoid}, "Input" -> 2]
Out[1]=
![](assets.ja/generate-random-images/O_72.png)
ベースネットワークの無作為に初期化されたコピーの表を作成する.
In[2]:=
![Click for copyable input](assets.ja/generate-random-images/In_87.png)
nets = Table[
NetInitialize[net,
Method -> {"Random", "Weights" -> 3, "Biases" -> 2}], 25];
初期化されたネットワークを使って,画像を画素座標の密な配列に適用することにより,画像を生成する.
In[3]:=
![Click for copyable input](assets.ja/generate-random-images/In_88.png)
row = Range[-2, 2, 0.04];
coords = Tuples[row, 2];
plot[net_] := Image[Partition[net[coords], Length[row]]];
Multicolumn@Table[plot[net], {net, nets}]
Out[3]=
![](assets.ja/generate-random-images/O_73.png)