React-Native App 中的 SKLearn 模型
Posted
技术标签:
【中文标题】React-Native App 中的 SKLearn 模型【英文标题】:SKLearn Model in React-Native App 【发布时间】:2019-01-02 18:15:39 【问题描述】:我正在尝试找出在 react-native 应用程序中使用 sklearn 模型(例如:RandomForestClassifier 等)的最佳方式。我已经能够使用 pickle 导出模型,但我不知道在 react-native 中使用它的最佳方法。
以下是我想到/研究过的选项:
-
在 react-native 应用程序中运行实际的 python 代码。这可以使用 Transcrypt (http://www.transcrypt.org/) 来完成,它似乎允许您在 javascript 环境中运行 python 代码。
转换(或重写)模型以使用 TensorFlow。这样,您就可以利用 react-native-tensorflow (https://github.com/reneweb/react-native-tensorflow) 在应用中使用模型。
创建 python 后端服务并通过创建 REST api 将其连接到应用程序。因此,后端处理所有处理,模型产生的预测被转发到应用程序。
理想情况下,我希望应用程序能够离线运行,因此选项 3 不是可取的。但是,如果选项 3 显然是最简单/最简单/唯一的解决方案,那么我可以选择那个。
完成此任务的推荐方法是什么?是我上面研究过的选项之一,还是其他选项?
【问题讨论】:
如果您正在寻找离线功能,而不是选项 1 和 2 可能是最佳选择,请查看 skulpt.org,如果您找到解决方案,请告诉我们,因为这是我想要的也在寻找:) 【参考方案1】:我希望 sklearn 能够利用 C/C++ 代码来获得性能。 这排除了选项 1,不是原则上,而是实际上,因为 PyPyJs(浏览器中的 C++)的加载时间仍然不切实际。
要离线运行,剩下选项 2(顺便说一句,如果您更喜欢 Python 而不是 JavaScript,可以使用 Transcrypt 来完成)。
如果可扩展性不是问题,选项 3 是一种可能性(我认为是最简单的)。但确实,能够离线运行是一个相当大的优势。
我的建议是进一步研究选项 2。如果您能够在浏览器中离线运行此类模型,那么它将在许多其他场合得到回报。如果 TensorFlow 将利用 GPU,将会有巨大的性能提升。
【讨论】:
以上是关于React-Native App 中的 SKLearn 模型的主要内容,如果未能解决你的问题,请参考以下文章
如何在 App.js (React-Native) 中访问 redux 状态
对象不是 Expo(react-native) 应用程序中的函数
无法使用react-native app中的redux-persist检查索引/主文件上是否已加载持久状态
如何在 react-native webView 和 React web-app 之间进行通信?