Windows phone 8 windowsphone8.0上的神经网络
我正在尝试在WindowsPhone8应用程序上使用一个新的神经网络框架进行编写,并安装了PCL版本 我写了以下代码: Pivotpage.xaml.csWindows phone 8 windowsphone8.0上的神经网络,windows-phone-8,neural-network,aforge,Windows Phone 8,Neural Network,Aforge,我正在尝试在WindowsPhone8应用程序上使用一个新的神经网络框架进行编写,并安装了PCL版本 我写了以下代码: Pivotpage.xaml.cs _inputDataGelen = new double[4] { 0.067, 0.033, 0.057, 0.021 }; double compute = network.Compute(_inputDataGelen)[0]; // (1) //MessageBox.Show("Output is "+ Math.Round(com
_inputDataGelen = new double[4] { 0.067, 0.033, 0.057, 0.021 };
double compute = network.Compute(_inputDataGelen)[0]; // (1)
//MessageBox.Show("Output is "+ Math.Round(compute));
我正在桌面应用程序上尝试相同的代码,我得到的计算结果为0.00112。。或0.01283..0.02123..0.03231..0.04159。。。所以如果我四舍五入到一位数字0,1,2,3,4
但当我尝试WindowsPhone8项目时,我得到的计算结果就像0.999995345
我的问题是什么
提前谢谢。对不起,我的语言。桌面代码:
ActivationNetwork network = null; //global variable
bool dongu = false;
...
...
network = new ActivationNetwork(
new BipolarSigmoidFunction(2), //activation func.
4, //input count
20, //hidden layer count
1); //output count
//Learning Network
BackPropagationLearning backprob = new BackPropagationLearning(network);
backprob.LearningRate = 0.1;
backprob.Momentum = 0.0;
int iteration = 1;
double hata = 0.0;
//loop
while(!dongu)
{
hata = backprob.RunEpoch(_inputData, _outputData);
iteration++;
if (iteration > 10000 || hata < 0.0001)
break;
}
double a1 = Convert.ToDouble(textBox3.Text);
double a2 = Convert.ToDouble(textBox4.Text);
double a3 = Convert.ToDouble(textBox5.Text);
double a4 = Convert.ToDouble(textBox6.Text);
//Actually devide 100. Not 1000.
double[] girdi = { a1/1000, a2/1000, a3/1000, a4/1000 }; //normalize
textBox1.Text = network.Compute(girdi)[0].ToString() + " compute"; //output ile aynı değer geliyor
double find = network.Output[0]*100; //denormalize
//textBox2.Text = (network.Output[0]).ToString() + " output"; //compute ile aynı değer geliyor
//tam sayıya yuvarlama
find = Math.Round(find,1);
if (find >= 0.0 && find <= 1.7) //bu aralık optimize edilebilir
{
//MessageBox.Show("Iris-setosa");
textBox7.Text = "1";
}
else if (find > 1.7 && find <= 2.6)
{
//MessageBox.Show("Iris-versicolor");
textBox7.Text = "2";
}
else if (find > 2.6 && find <= 3.7)
{
//MessageBox.Show("Iris-virginica");
textBox7.Text = "3";
}
列车组是
@AndersGustafsson,这段代码在桌面上运行。如果我输入5.1、3.5、1.4、0.2个双数,我给出的输出是1。网络变量是什么类型的,您是如何初始化的?我使用了您的初始化,只是我将输入计数从9更改为4。调用Compute时,无论何时在使用Cureos二进制文件的Windows Phone上尝试此操作,还是在使用NuGet程序集的控制台应用程序中尝试此操作,我都会得到接近1的值。你能展示一下能产生你期望的结果的桌面应用程序代码吗?奥斯曼,我会在有时间的时候详细研究一下。同时,我认为你应该考虑把文本从答案转到你原来的问题,然后删除答案。或者,为了便于进一步讨论,将整个问题作为一个问题发布在Github上,.Ok@AndersGustafsson我在Github上写了这个问题。我正在努力解决问题,等待帮助。Thx。问题解决了。我定义了一些函数。位置不正确:/这是我的错误。非常抱歉@AnderGustafsson。所以,谢谢你做的一切。很高兴事情最终为你解决了,奥斯曼。如果您在PCL/WP8方面遇到其他问题,请立即在报告中报告。