【问题标题】:Cannot implicitly convert type 'void' to 'Encog.ML.Data.IMLData'无法将类型“void”隐式转换为“Encog.ML.Data.IMLData”
【发布时间】:2014-02-24 13:38:48
【问题描述】:

我在尝试使用测试示例测试我的神经网络时遇到此错误。

这是发生错误的行:

 IMLData output = network.Compute(skuska1,testout1);

输入 skuska1 的位置:

 double[] skuska1 = File.ReadAllText(@"E:\te1.txt").Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(double.Parse).ToArray();

并且 testout1 是所需的输出:

 double[] testout1 = File.ReadAllText(@"E:\te1out.txt").Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(double.Parse).ToArray();

对于那些不太熟悉encog的人,这是根据MVS 2012的Compute方法所需要的

 void BasicNetwork.Compute(double[] input, double[] output) (+1 overload(s))

在 (+1 重载) 下我应该想象什么?

谢谢。

【问题讨论】:

  • Compute 不返回任何东西(方法无效)所以你不能做IMLData output = network.Compute(skuska1,testout1);
  • 谢谢,但在我修改之前是这样的:IMLData output = network.Compute(pair.Input);其中该对由 2 个双精度数组组成。它就是这样工作的。如果我想打印该输出,我该如何修改它?例如 Console.WriteLine(output); ?

标签: c# parameters encog


【解决方案1】:

void BasicNetwork.Compute(double[] input, double[] output) 将来自input 的数据提供给神经网络,并将输出发送到output。这就是它返回void 的原因。所以你的代码应该是这样的:

   double[] output  = new double[skuska1.Length];
   BasicNetwork.Compute(double[] skuska1, double[] output);

然后您可以将output 的结果与预期的测试输出进行比较。

【讨论】:

    猜你喜欢
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 2016-02-17
    • 2015-04-26
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多