神经网络不适用于100X100图像

时间:2016-09-04 12:44:24

标签: c++ opencv neural-network

我已经创建了一个神经网络,在实现XOR门时可以正常运行,它可以在输入28X28的图像大小时工作,虽然我还没有用其他图像测试它,28X28采用浮点运算数量和工作正常。但是,每当我输入大小为100X100的图像时,它似乎都无法工作。我更改了隐藏层的参数,它们是32个节点65个节点和100个节点。如果此100X100图像仅为1和0,则情况不同。我是否可以将像素值转换为错误,但如果是这样,为什么它适用于28X28图像尺寸?

我使用的算法使用在线学习,其中权重是每个输入的更新。

我注意到的另一件事是每当我输入大量数据如100X100图像时,算法似乎都停留在0.3~0.1ish mse。是不是我可能会遗漏算法中的某些内容?

权重为-0.5,0.5的范围。最初,他们在这些数字之间随机化。

我已经将3张图片用于衬衫上,每件都是100X100。

[outputs] mean-squared-error

32 node error after 400 iteration for 100X100 image with floating point input:

> [ 0.841227 0.674843 0.804683 ] 0.283846  
> [ 0.841227 0.674843 0.804683 ] 0.283846  
> [ 0.841227 0.674843 0.804683 ] 0.283846  
> [ 0.841227 0.674843 0.804683 ] 0.283846   
> [ 0.841227 0.674843 0.804683 ] 0.283846   
> [ 0.841227 0.674843 0.804683 ] 0.283846   
> [ 0.841227 0.674843 0.804683 ] 0.283846 

65 nodes:

> [ 0.897245 0.706758 0.877548 ] 0.302012   
> [ 0.897245 0.706757 0.877549 ] 0.302012   
> [ 0.897245 0.706758 0.877548 ] 0.302012   
> [ 0.897245 0.706757 0.877549 ] 0.302012   
> [ 0.897245 0.706758 0.877548 ] 0.302012   
> [ 0.897245 0.706757 0.877549 ] 0.302012   
> [ 0.897245 0.706758 0.877548 ] 0.302012   
> [ 0.897245 0.706757 0.877549 ] 0.302012   


100 node:

> [ 0.942706 0.843137 0.897838 ] 0.307912   
> [ 0.91558 0.671391 0.938428 ] 0.316687   
> [ 0.942706 0.843141 0.897838 ] 0.307912   
> [ 0.91558 0.671393 0.938427 ] 0.316687   
> [ 0.942706 0.843137 0.897838 ] 0.307912   
> [ 0.91558 0.671391 0.938428 ] 0.316687   
> [ 0.942706 0.84314 0.897838 ] 0.307912

我是否陷入了局部最小值?

此处的代码可以随意查看link

0 个答案:

没有答案