多语言展示
当前在线:582今日阅读:19今日分享:20

用神经网络训练计算机来预测图像

mathematica来学习神经网络,实在是简约,比python还要简洁。本文,学习一下用mathematica来训练一个神经网络,并尝试着预测图像。
工具/原料
1

电脑

2

mathematica

方法/步骤
1

给定一幅RGB图片,并转化为像素数据:a=ImageData[img];

3

把图片转化为训练集:r= Flatten@MapIndexed[(2(#2-1.)/(c-1)-1.)->#1 &,a,{2}];输入值为像素的位置;输出值为像素的RGB颜色参数。

4

构造一个未训练的神经网络:d=NetChain[{100,Ramp,250,Ramp,10,LogisticSigmoid,3}]输出值为3元向量。因此,你步骤一准备的图片如果不是RGB图片,请用Rasterize处理一下,免得训练的时候报错。

5

用训练集r来训练神经网络d,训练20回合:t=NetTrain[d,r, MaxTrainingRounds -> 20];

6

用训练的神经网络来预测原图,看看预测效果:p=Range[-1,1,2./#]&/@c;q = Tuples[p];Image[Partition[t@q, Length[p[[2]]]]]额,一塌糊涂。

注意事项

这个例子不成功,并不能说明神经网络不够强大。

推荐信息