2010-04-11 47 views
0

我的网站将使用神经网络根据用户数据预测事物。用户可以选择要用于训练网络的数据,然后使用他们的训练网络来预测事情。保存文件或数据库记录? Java和Python

我正在使用框架来创建,训练和查询网络。这使用Java。该框架具有将网络保存到XML文件的持久性。

什么是存储这些文件的最佳方式?我可以看到一些潜在的想法,但我需要选择帮助是​​最好的:

  1. 保存每个网络与存储在数据库中的名称的单独的XML文件。每次加载这个。
  2. 将所有网络保存到同一个XML文件,每个网络具有存储在数据库中的不同名称。
  3. 以某种方式将通常写入XML文件的内容传递给Django站点以写入数据库。这需要在需要进行预测时返回到Java代码。

我可以做1或2,但我认为他们的表现会相当有限,而且我现在在共享主机上,所以我不知道他们对成千上万的文件会有多高兴。另外,在向一个XML文件添加几千条记录之后,我注意到在保存到该文件时存在巨大的性能损失。

如果我能够以某种方式实现版本3,我认为这将是最好的。没有单独的进程访问数据库的问题,我认为性能会更好。更别说没有文件了。

但是,我使用的神经网络框架中的东西(Encog)用于保存到文件需要访问Java文件对象,而不是可以保存到数据库的字符串。除非有一些我可以在这里做的Java魔术(我知道Java很少),但我可以看到做这个的唯一方法是使用临时文件,但我不知道这是否是正确的方法。

我希望有关实现上述3个想法或任何替代方案的最佳途径的任何想法。谢谢!

更新:在与我的老板交谈后,我们都同意主意3是最好的。这似乎是“正确”的做法。我希望有人能帮助我们解决这个问题。谢谢。

回答

0

我想我有最好的解决方案,因为没有人回答这是我现在要做的。

我正在Java中创建一个临时文件并使用它来保存数据。然后在退出之前,我读取该文件并将其输出到stdout,以便python代码可以将其拾取并存储到数据库中。值得庆幸的是,它总是一个相似的大小,所以我可以限制数据库字段上的字符数为3500.

如果有人得到更好的解决方案,请评论告诉我,但目前,这是我将使用。

+0

也许你可以阅读关于jython的jython和django,以便将webapp与你的框架进行通信? – diegueus9 2010-04-14 18:46:48

相关问题