项目作者: repetere

项目描述 :
Construct AI & ML models with JSON using Tensorflow & TypeScript
高级语言: TypeScript
项目地址: git://github.com/repetere/jsonm.git
创建时间: 2020-04-06T03:05:43Z
项目社区:https://github.com/repetere/jsonm

开源协议:MIT License

下载


JSONM

Coverage Status Build, Test, Release

Description

JSONM is a module that creates Tensorflow models with JSON.

Jump right in

JSONM is designed so software engineers and machine learning engineers can quickly build, train, save, and load Tensorflow based AI & ML Models. The JSONM Library includes a JSONM UMD module with batteries included so you can use JSONM in the browser without transpilers or any additional setup/configuration. The JSONM UMD is ideal for JAMstack Applications.

Usage

The idea behind JSONM is to enable rapid model development. JSONM attempts to automate the data pre-processing and feature engineering needed for most modeling tasks.

Data Scientists who are more comfortable finely tuning hyperparameters and controlling pre-processing, scaling and normalization of datasets can also configure JSONM to meet specific model requirements.

What’s included

JSONM currently supports the following models

  • General purpose multivariate based predictions
  • Multivariate linear regression based predictions
  • General purpose multivariate classification based descriptions
  • General purpose multivariate timeseries based forecasts
  • General purpose content based recommendations (coming soon)
  • General purpose cohort analysis (coming soon)

    Installation

  1. $ npm i @jsonstack/jsonm

JSONM Manual


Basic Usage

  1. import * as tf from '@tensorflow/tfjs-node';
  2. import { getModel, setBackend, } from '@jsonstack/jsonm';
  3. //set tensorflow
  4. setBackend(tf);
  5. //Iris Dataset e.g from https://raw.githubusercontent.com/repetere/modelx-model/master/src/test/mock/data/iris_data.csv
  6. const type = 'ai-classification';
  7. const dataset = [
  8. {
  9. "sepal_length_cm": 5.1,
  10. "sepal_width_cm": 3.5,
  11. "petal_length_cm": 1.4,
  12. "petal_width_cm": 0.2,
  13. "plant": "Iris-setosa",
  14. },
  15. // ...
  16. {
  17. "sepal_length_cm": 7.0,
  18. "sepal_width_cm": 3.2,
  19. "petal_length_cm": 4.7,
  20. "petal_width_cm": 1.4,
  21. "plant": "Iris-versicolor",
  22. },
  23. // ...
  24. {
  25. "sepal_length_cm": 5.9,
  26. "sepal_width_cm": 3.0,
  27. "petal_length_cm": 5.1,
  28. "petal_width_cm": 1.8,
  29. "plant": "virginica",
  30. }
  31. ]
  32. const inputs = ['sepal_length_cm','sepal_width_cm','petal_length_cm','petal_width_cm', ];
  33. const outputs = [ 'plant',];
  34. const on_progress = ({ completion_percentage, loss, epoch, status, logs, defaultLog, }) => {
  35. console.log({ completion_percentage, loss, epoch, status, logs, defaultLog, });
  36. }
  37. const IrisModel = await getModel({
  38. type,
  39. dataset,
  40. inputs,
  41. outputs,
  42. on_progress,
  43. });
  44. await IrisModel.trainModel()
  45. const predictions = await IrisModel.predictModel({
  46. prediction_inputs:[
  47. { sepal_length_cm: 5.1, sepal_width_cm: 3.5, petal_length_cm: 1.4, petal_width_cm: 0.2, },
  48. { sepal_length_cm: 5.9, sepal_width_cm: 3.0, petal_length_cm: 5.1, petal_width_cm: 1.8, },
  49. ],
  50. }); // => [ { plant:'Iris-setosa' }, { plant:'Iris-virginica' }, ]

Example

Development

Note Make sure you have typescript installed

  1. $ npm i -g typescript

For generating documentation

  1. $ npm run doc

Notes

Check out https://repetere.github.io/jsonm/ for the full jsonm Documentation

Testing

  1. $ npm test

Contributing

Fork, write tests and create a pull request!

License


MIT