2

我试图找出在 react-native 应用程序中使用 sklearn 模型(例如:RandomForestClassifier 等)的最佳方法。我已经能够使用 pickle 导出模型,但我不知道在 react-native 中使用它的最佳方法。

以下是我想到/研究过的选项:

  1. 在 react-native 应用程序中运行实际的 python 代码。这可以使用 Transcrypt ( http://www.transcrypt.org/ ) 来完成,它似乎允许您在 javascript 环境中运行 python 代码。
  2. 转换(或重写)模型以使用 TensorFlow。这样,您可以利用 react-native-tensorflow ( https://github.com/reneweb/react-native-tensorflow ) 在应用程序中使用模型。
  3. 创建 python 后端服务并通过创建 REST api 将其连接到应用程序。因此,后端处理所有处理,模型产生的预测被转发到应用程序。

理想情况下,我希望该应用程序能够离线运行,因此选项 3 并不可取。但是,如果选项 3 显然是最简单/最简单/唯一的解决方案,那么我可以选择那个。

完成此任务的推荐方法是什么?它是我上面研究过的选项之一,还是其他选项?

4

1 回答 1

1

我希望 sklearn 能够利用 C/C++ 代码来获得性能。这排除了选项 1,不是原则上,而是实际上,因为 PyPyJs(浏览器中的 C++)的加载时间仍然不切实际。

要离线运行,剩下选项 2(如果您更喜欢 Python 而不是 JavaScript,那么可以使用 Transcrypt 来完成)。

如果可扩展性不是问题,选项 3 是一种可能性(我认为是最简单的)。但确实,能够离线运行是一个相当大的优势。

我的建议是进一步研究选项 2。如果您能够在浏览器中离线运行此类模型,那么它将在许多其他场合得到回报。如果 TensorFlow 能够利用 GPU,将会有巨大的性能提升。

于 2018-08-22T11:05:50.727 回答