Accord.Net:我应该将哪些数据传递给 RunEpoch() 方法?

时间:2021-03-28 16:34:48

标签: c# machine-learning neural-network backpropagation accord.net

我需要使用反向传播算法对图像进行分类。 为此,我选择了 Accord.Net 框架。 我有几个 5x7 图片的数据集,代表字母和数字。数据写入 CSV 文件,每行包含:

  • 图像类型的 4 位数字(1,0,0,0 或 0,0,1,0 等)
  • 图像数据的 35 位数字(例如,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,0,1,1,0 ,1,1,0,1,0,1,0,0,1,0,1,1,1,1,0,1)

所以,首先,在收到这些数据后,我建立了我的神经网络:

ActivationNetwork network = new ActivationNetwork(new SigmoidFunction(), 35, 100, 100, 4);

BackPropagationLearning learner = new BackPropagationLearning(network)
{
   LearningRate = 0.05
};
new GaussianWeights(network, 0.1).Randomize();

在那之后,我将训练我的网络:

int epochsCount = 500;

for (int i = 0; i < epochsCount; i++)
{
   double error = learner.RunEpoch();
}

我是 ML 的新手,对 Accord.Net 框架有点了解。方法 RunEpoch() 接受 2 个参数:double[][] 和 double[][]。我不明白我应该如何组织数据以及应该将哪些数据传递给 RunEpoch 方法。你能建议我吗?我是否在 .csv 文件中正确组织了数据?

0 个答案:

没有答案
相关问题