为什么选择 Pipcook
以让 JavaScript 工程师在没有任何先决条件的情况下利用机器学习的力量为使命,并以引领前端技术领域走向智能化为愿景。Pipcook将成为机器学习和前端交互交叉领域的 JavaScript 应用程序框架。
我们真正为前端和机器学习应用设计Pipcook的API,并专注于前端领域,从JavaScript工程师的角度进行开发。本着对JavaScript友好的原则,我们将通过机器学习工程推动整个领域向前发展。出于这个原因,我们打开了一个关于 机器学习应用程序 API 的问题,期待您的参与。
什么是 Pipcook
该项目提供的子项目包括机器学习管道框架、管理工具、用于机器学习的 JavaScript 运行时,这些也可以用作与其他项目结合的构建块。
原则
Pipcook是一个以强大原则为指导的开源项目,旨在实现模块化和灵活的用户体验。它对社区开放,以帮助确定其方向。
- 模块化项目包括一些具有良好定义的功能和可协同工作的 API 的项目。
- Swappable该项目包含足够的模块来构建 Pipcook 所做的事情,但其模块化架构确保大多数模块可以通过不同的实现进行交换。
观众
Pipcook面向希望:
- 学习什么是机器学习。
- 训练他们的模型并为他们服务。
- 优化自己的模型以获得更好的模型评估结果,例如更高的图像分类精度。
如果您处于上述情况,请通过安装指南尝试。
子项目
Pipcook 管道
它用于表示由 Pipcook 脚本组成的 ML 管道。该层保证了整个系统的稳定性和可扩展性,并采用插件机制支持数据集、训练、验证、部署等丰富的功能。
Pipcook 管道通常由许多脚本组成。通过不同的脚本和配置,最终输出给我们的是一个 NPM 包,里面包含训练好的模型和可以直接使用的 JavaScript 函数。
注意:在Pipcook中,每个pipeline只有一个作用,就是输出你需要的上面训练好的模型。也就是说每个pipeline的最后一个stage必须是训练好的模型的输出,否则这个Pipeline是无效的。
Pipcook 桥接 Python
对于 JavaScript 工程师来说,最困难的部分是生态系统中缺乏成熟的机器学习工具集。在 Pipcook 中,有一个名为 [Boa][ https://github.com/imgcook/boa ]的模块,它通过使用 N-API桥接CPython的接口来提供对 Python 包的访问。
有了它,开发人员可以使用的包,例如numpy
,scikit-learn
,jieba
,tensorflow
,或者在Node.js的任何其他Python生态通过JavaScript运行。
快速开始
设置
在您的机器上准备以下内容:
安装用于管理Pipcook项目的命令行工具:
$ npm install -g @pipcook/cli
然后运行一个管道:
$ pipcook 运行 https://cdn.jsdelivr.net/gh/alibaba/pipcook@main/example/pipelines/text-classification-bayes.json
操场
如果您想知道在Pipcook 中可以做什么以及在哪里可以查看您的训练日志和模型,您可以从Pipboard开始:
打开 https://pipboard.imgcook.com
您将在浏览器中看到一个网页提示,主页上有一个 MNIST 展示并在那里播放。
管道
如果你想训练一个模型来自己识别 MNIST 手写数字,你可以试试下面的例子。
名称 | 描述 | 在 Colab 中打开 |
mnist-图像分类 | 分类 MNIST 图像分类问题的管道。 | 不适用 |
数据绑定图像分类 | 训练图像分类任务的管道示例,即 对imgcook数据绑定图片进行分类。 |
|
物体检测 | 用于训练对象检测任务的管道示例,该任务 用于 imgcook 使用的组件识别。 |
|
文本贝叶斯分类 | 使用贝叶斯训练文本分类任务的管道示例 | 不适用 |
有关完整列表,请参见此处,运行这些示例既简单又快捷。例如,要进行 MNIST 图像分类,只需运行以下命令即可启动管道:
$ pipcook 运行 https://cdn.jsdelivr.net/gh/alibaba/pipcook@main/example/pipelines/image-classification-mobilenet.json -o 输出
上述管道完成后,您已经在当前output/model
目录训练了一个模型,它是一个 tensorflow.js 模型。
社区
钉钉
或者通过群号搜索:30624012。