本文,构造16个神经网络,并用这16个神经网络,绘制16幅图片。
其实,主要目的,是继续入门神经网络。


工具/原料
- 电脑
- Mathematica
方法/步骤
- 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,得到的图片如下:
四幅图片,而且运行一次,就会发现变化。
END
注意事项
- 注意,步骤一里面的神经网络还没有初始化,所以还不能使用。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。