神经网络入门——生成随机图片
1、建立一个神经网络:
a = NetChain[{30, Sin, 3, Tanh, 3, Cos}, "Input" -> 2];
这个神经网络的作用是:
接收一个2元向量v、
自动延展为30元的向量v0、
Sin作用于v0的每一个元素,得到新的向量v1、
把v1变成3元向量v2、
Tanh作用于v2的所有元素,得到v3、
Cos作用于v3、
输出v4。

2、用上面的神经网络a,复制出16个随机的神经网络,并初始化:
as = Table[ NetInitialize[a,
Method->{"Random","Weights"->3,"Biases"->2}], 16];

3、给出若干个二元向量的集合:
m= Range[0, 20, 0.04]
n = Tuples[m, 2]
可以看到,n是若干二元向量的集合。

4、用as里面的第一个神经网络作用于n,可以得到一个三元向量的集合:
as[[1]][n]

5、对上面的数据进行以下操作,可以转化为500*360的彩色图像的数据:
Partition[as[[1]][n],500]
下图是放大2倍的效果。

6、运行一次,就会得到不同的图片。
Partition[as[[1]][n],500]

7、如果把m改一下:
m= Range[0, 2, 0.004];n = Tuples[m, 2];
那么,Partition[as[[1]][n],500]//Image也变了。



8、用as里面的前4个神经网络来处理数据n,得到的图片如下:
四幅图片,而且运行一次,就会发现变化。


声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:136
阅读量:181
阅读量:171
阅读量:126
阅读量:142