神经网络入门——生成随机图片

2025-11-02 13:53:55

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。
猜你喜欢