有没有办法训练一个Encog神经网络而不加载内存中的所有训练集?

时间:2016-01-09 15:15:00

标签: .net machine-learning neural-network artificial-intelligence encog

我一直在使用.NET框架来训练神经网络,而且我的数据集非常庞大,输入数量很大。

我已经决定切换到Encog,因为我使用的旧框架存在一些问题,而且因为Encog看起来更丰富并且提供了额外的功能。

我的问题是Encog一次将所有训练数据加载到2D数组中,这对我来说并不合适,因为我有一个非常大的数据集。我已尝试解决此问题,并检查了其他问题(例如this one但无法找到答案)。

我尝试使用SQLNeuralDataSet和其他支持流操作的实现,但它们似乎最终都将数据加载到内存中(使用MemoryDataLoader),这并不能解决我的问题。

有没有办法可以一次加载(和训练)我的网络一个项目?或者这个选项在Encog中不可用?

由于

修改

我最终复制了源代码并根据我的需要进行了修改。基本上,根据文档,这一切都归结为Process(IMLDataPair pair)中的GradientWorker

  

处理一个训练集元素。

1 个答案:

答案 0 :(得分:1)

查看Encog数据源的source code,有很多选项。请查看/// This class is not memory based, so very long files can be used, without /// running out of memory. This dataset uses a Encog binary training file as a /// buffer. ,例如:

\t