【问题标题】:Tensorflow train Model on ServerTensorFlow 在服务器上训练模型
【发布时间】:2016-12-16 12:03:29
【问题描述】:

我需要使用我在 Android 中收集的数据执行一些机器学习。

我在一个 android 应用程序中收集一些数据,将其存储在共享首选项中,如果用户单击按钮,则应显示基于此数据的一些预测。 因此,我必须执行一些机器学习算法。

我考虑过使用 Tensorflow。 但根据 Tensorflow Android 教程,我需要一个预训练模型,但我没有,因为我没有任何保存的数据。

我认为应该可以在服务器上使用 Tensorflow。 是否有可能: 将收集到的数据从智能手机发送到服务器? 在服务器上训练模型?

如果用户点击了预测按钮,应该根据服务器上训练好的模型进行预测吗?

或者有没有其他方法可以做到这一点,或者在 Android 上使用其他一些机器学习库(除了 weka)

谢谢。

【问题讨论】:

  • 你在处理什么类型的数据?
  • 从其他应用收集的数据,例如心率,以及来自 facebook 的社交媒体数据

标签: android machine-learning tensorflow


【解决方案1】:

您可以查看此posthere 的库,并阅读此article

最后,使用 TFAndroid 上由 Google 自己浏览这个 sample code

几乎在所有情况下,数据的训练都是在服务器中完成的,模型用于预测智能手机中的数据。您可以使用 Amazon、Azure 或其他公司的 AWS 等云服务来训练您的模型。

首先,您需要收集数据并将其反复发送到服务器(数据越多越好)。这应该是您必须使用用户最有可能使用的实时数据的训练期。

收集到足够的数据后,您就可以训练模型了。然后将其用于预测,同时不断从用户那里收集数据。然后偶尔再次训练你的模型。这将改善您的预测。这样您就可以循环训练和使用模型。

【讨论】:

  • 感谢我知道 Google 提供的此示例代码。但他们使用的是预训练模型。实际上,我只找到使用预试验模型的示例(也在服务器上使用 Tensorflow)。每次发送数据时,我都想在智能手机或服务器上训练模型。
  • 答案已更新。在服务器上训练模型。每次将数据发送到服务器时,您都不会进行训练。它应该与您的使用量成反比。起初训练应该是频繁的。一旦数据变得足够大(非常大),训练率就会降低。
  • 好的,谢谢,但我还有一个问题。我对 Android、Tensorflow 等还很陌生。所以这意味着可以在 Azure、AWS 上使用 Tensorflow?我可以将我收集的数据发送到服务器,训练模型或图 tensorflow 需要,重新训练这个图并将其用于预测?因为我看过教程,每次我只找到首先训练模型/图的示例,然后使用该模型/图重新训练模型。我不能这样做,因为我现在没有任何数据。
  • 嗯,是的,这是可能的。其次,一旦开始收集数据,就必须训练模型。收集到足够的数据后,您就可以训练和重新训练模型以获得更好的预测。