XUtils

Pipcook

Front-end algorithm framework to create a machine learning pipeline.


Why Pipcook

With the mission of enabling JavaScript engineers to utilize the power of machine learning without any prerequisites and the vision to lead front-end technical field to the intelligention. [Pipcook][] is to become the JavaScript application framework for the cross-cutting area of machine learning and front-end interaction.

We are truly to design Pipcook’s API for front-end and machine learning applications, and focusing on the front-end area and developed from the JavaScript engineers’ view. With the principle of being friendly to JavaScript, we will push the whole area forward with the machine learning engineering. For this reason we opened an issue about [machine-learning application APIs][], and look forward to you get involved.

What’s Pipcook

The project provides subprojects including machine learning pipeline framework, management tools, a JavaScript runtime for machine learning, and these can be also used as building blocks in conjunction with other projects.

Principles

[Pipcook][] is an open-source project guided by strong principles, aiming to be modular and flexible on user experience. It is open to the community to help set its direction.

  • Modular the project includes some of projects that have well-defined functions and APIs that work together.
  • Swappable the project includes enough modules to build what Pipcook has done, but its modular architecture ensures that most of the modules can be swapped by different implementations.

Quick start

Setup

Prepare the following on your machine:

Installer Version Range
[Node.js][] >= 12.17 or >= 14.0.0
[npm][] >= 6.14.4

Install the command-line tool for managing [Pipcook][] projects:

$ npm install -g @pipcook/cli

Then train from anyone of those pipelines, we take image classification as an example:

$ pipcook train https://cdn.jsdelivr.net/gh/alibaba/pipcook@main/example/pipelines/image-classification-mobilenet.json -o ./output

This dataset specfied by the pipeline includes 2 categories image: avatar and blurBackground. After training, we can predict the category of a image:

$ pipcook predict ./output/image-classification-mobilenet.json -s ./output/data/validation/blurBackground/71197_223__30.7_36.jpg
✔ Origin result:[{"id":1,"category":"blurBackground","score":0.9998120665550232}]

The input is a blurBackground image from the validation dataset. And the model determines that its category is blurBackground.

Want to deploy it?

$ pipcook serve ./output
ℹ preparing framework
ℹ preparing scripts
ℹ preparing artifact plugins
ℹ initializing framework packages
Pipcook has served at: http://localhost:9091

Then you can open the browser and try your image classification server.

Playground

If you are wondering what you can do in [Pipcook][] and where you can check your training logs and models, you could start from Pipboard:

open https://pipboard.imgcook.com

You will see a web page prompt in your browser, and there is a MNIST showcase on the home page and play around there.

Pipelines

If you want to train a model to recognize MNIST handwritten digits by yourself, you could try the examples below.

Name Description Open in Colab
mnist-image-classification pipeline for classific MNIST image classification problem. N/A
databinding-image-classification pipeline example to train the image classification task which is
to classify imgcook databinding pictures.
Open In Colab
object-detection pipeline example to train object detection task which is for component recognition
used by imgcook.
Open In Colab
text-bayes-classification pipeline example to train text classification task with bayes N/A

See here for complete list, and it’s easy and quick to run these examples. For example, to do a MNIST image classification, just run the following to start the pipeline:

$ pipcook run https://cdn.jsdelivr.net/gh/alibaba/pipcook@main/example/pipelines/image-classification-mobilenet.json -o output

After the above pipeline is completed, you have already trained a model at the current output/model directory, it’s a tensorflow.js model.

Community

DingTalk

Or searched via the group number: 30624012.

Download DingTalk (an all-in-one free communication and collaboration platform) here: English | 中文

Gitter Room

Who’s using it


Articles

  • coming soon...