基于 tfjs-node 的 前端算法工程框架(基于学生核心素养培养的课堂教学设计)

网友投稿 1028 2022-10-12

基于 tfjs-node 的 前端算法工程框架(基于学生核心素养培养的课堂教学设计)

基于 tfjs-node 的 前端算法工程框架(基于学生核心素养培养的课堂教学设计)

Pipcook

A JavaScript application framework for machine learning and its engineering.

Builds

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 include 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.

Audience

Pipcook is intended for Web engineers looking to:

learn what's machine learning.train their models and serve them.optimize own models for better model evaluation results, like higher accuracy for image classification.

If you are in the above conditions, just try it via installation guide.

Subprojects

Pipcook Pipeline

It's used to represent ML pipelines consisting of Pipcook plugins. This layer ensures the stability and scalability of the whole system and uses a plug-in mechanism to support rich functions including dataset, training, validations, and deployment.

A Pipcook Pipeline is generally composed of lots of plugins. Through different plugins and configurations, the final output to us is an NPM package, which contains the trained model and JavaScript functions that can be used directly.

Note: In Pipcook, each pipeline has only one role, which is to output the above-trained model you need. That is to say, the last stage of each pipeline must be the output of the trained model, otherwise, this Pipeline is invalid.

Pipcook Bridge to Python

For JavaScript engineers, the most difficult part is the lack of a mature machine learning toolset in the ecosystem. In Pipcook, a module called Boa, which provides access to Python packages by bridging the interface of CPython using N-API.

With it, developers can use packages such as numpy, scikit-learn, jieba, tensorflow, or any other Python ecology in the Node.js runtime through JavaScript.

Quick start

Setup

Prepare the following on your machine:

InstallerVersion Range
Node.js>= 12
npm>= 6.1

Install the command-line tool for managing Pipcook projects:

$ npm install -g @pipcook/pipcook-cli$ pipcook init && pipcook daemon start

Occuring the download problems? We use tuna mirror to address this issue:

$ pipcook init --tuna

Then run a pipeline:

$ pipcook run https://raw.githubusercontent.com/alibaba/pipcook/master/example/pipelines/text-bayes-classification.json

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 http://localhost:6927/index.html

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.

pipeline-mnist-image-classification: pipeline for classific Mnist image classification problem.pipeline-databinding-image-classification: pipeline example to train the iamge classification task which is to classifify imgcook databinding pictures.pipeline-object-detection: pipeline example to train object detection task which is for component recognition used by imgcook.pipeline-text-bayes-classification: pipeline example to train text classification task with bayes

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 ./examples/pipelines/mnist-image-classification.json

After the above pipeline is completed, you have already trained a model at the current output directory, it's an independent NPM package and can be easily integrated in your existing system, to start a simple inference server locally, just run:

$ pipcook serve -p 7682

And send the request for result:

curl --request POST 'http://localhost:7682' \--header 'Content-Type: application/json' \--data-raw '{ "data": ""}'

Documentation

Please refer to English | 中文

Developers

Clone this repository:

$ git clone git@github.com:alibaba/pipcook.git

Install dependencies, e.g. via npm:

$ npm install

After the above, now build the project:

$ npm run build

Developer Documentation English | 中文Project GuideRoadmap, 2020

Community

DingTalk

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

Gitter Room

Who's using it

License

Apache 2.0

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:idea快速实现将SpringBoot项目打包Docker镜像并部署
下一篇:as3 笔记
相关文章

 发表评论

暂时没有评论,来抢沙发吧~