我正试图找出在react原生应用程序中使用sklearn模型(例如:RandomForestClassifier等(的最佳方法。我已经能够使用pickle导出模型,但我不知道在react native中使用它的最佳方式。
以下是我考虑过/研究过的选项:
- 在react本机应用程序中运行实际的python代码。这可以使用Transcrypt来实现(http://www.transcrypt.org/)这似乎允许您在javascript环境中运行python代码
- 转换(或重写(模型以使用TensorFlow。这样,您就可以利用react原生tensorflow(https://github.com/reneweb/react-native-tensorflow)在应用程序中使用模型
- 创建一个python后端服务,并通过创建RESTapi将其连接到应用程序。因此,后端处理所有的处理,模型产生的预测被转发到应用程序
理想情况下,我希望应用程序能够离线运行,因此选项3不是更好的选择。然而,如果选项3显然是最简单/最简单/唯一的解决方案,那么我可以选择它。
实现这一目标的建议方法是什么?这是我上面研究过的选项之一,还是另一个选项?
我希望sklearn能够利用C/C++代码来获得性能。这排除了选项1,不是主要的,而是实际的,因为PyPyJs(浏览器中的C++(的加载时间仍然是不切实际的。
要离线运行,剩下选项2(顺便说一句,如果您更喜欢Python而不是JavaScript,可以使用Transcrypt完成(。
如果可伸缩性不是问题,那么选项3是可能的(我认为这是最简单的(。但事实上,能够离线运行是一个相当大的优势。
我的建议是进一步研究备选方案2。如果你能够在浏览器中离线运行这些模型,那么在许多其他场合都会得到回报。如果TensorFlow能够利用GPU,将会获得巨大的性能提升。