Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generic Neural Network class #485

Merged
merged 53 commits into from Oct 11, 2019
Merged

Generic Neural Network class #485

merged 53 commits into from Oct 11, 2019

Conversation

shiffman
Copy link
Member

@shiffman shiffman commented Jun 8, 2019

Following up on #483

β†’ Description πŸ“

Submitting a new feature πŸ†•

I am going to start working on the generic neural network class in this branch in case anyone wants to follow!

β†’ Relevant Example or Paired Pull Request to ml5-examples πŸ¦„

ml5js/ml5-examples#164

β†’ Relevant documentation 🌴

Documentation to come!

@shiffman shiffman added API For function naming and other API questions. enhancement labels Jun 8, 2019
@jonnytest1
Copy link

just gonna leave this here since its fairly similar and might help out
https://github.com/jonnytest1/tpscripts/blob/master/learning/tensorflow.js
(ignore the stuff at the top thats just some custom injection i wrote)

@shiffman
Copy link
Member Author

I've implemented a "proof of concept" for training and prediction with this generic Neural Network class in 37414d7. Here is some sample code that I am using for a manual test. I'm going to add a separate comment for TODOs and questions momentarily.

// Create Neural Network
const neuralNetwork = ml5.neuralNetwork(3, 2);

// Add training data
const training_input = [-0.6, 1, 0.25];
const training_target = [0.3, 0.9];
for (let i = 0; i < 500; i++) {
  neuralNetwork.addData(training_input, training_target);
}

// Train
neuralNetwork.train(20, whileTraining);

// Training callback
function whileTraining(error, progress) {
  if (progress.status == 'training') {
    console.log(progress.epoch, progress.loss);
  } else if (progress.status == 'complete') {
    // Run prediction when complete
    let input = [-0.6, 1, 0.25];
    neuralNetwork.predict(input, gotResults);
  }
}

function gotResults(error, results) {
  console.log(results.output);
}

Screen Shot 2019-06-17 at 1 00 43 PM

@shiffman
Copy link
Member Author

shiffman commented Jun 17, 2019

TODO:

  • implement callbacks + promises properly with ml5's callCallback().
    • train function uses ml5's callCallback().
    • predict function uses ml5's callCallback().
  • check for shape when data is sent in for training and prediction.
  • add option to make a "classifier" (change to softmax activation and categoricalCrossEntropy)
  • finalize defaults / heuristics for hidden layer and activation functions and more. . .
  • memory management
  • load and save functions
  • implement neuro-evolution functions

QUESTIONS:

  • Do we need a separate ml5.data a la tf.data?
  • Do we allow for multiple hidden layers and if so, how?
  • To what extent for these very simple models should we be wrapping tf.layers vs. just doing the matrix math ourselves (this is perhaps more relevant for my intended use of this with neuro-evolution examples and possible the reinforcement learning work of @AidanNelson.)

@jonnytest1 thank you for your comments and feedback! My goal for this implementation is to create something simpler and more basic from the the usual technique (like in keras / tf.layers) of manually configuring and adding the layers one at a time. The options object would allow for some customization, but ultimately this will serve as a stepping stone to using tf.layers directly for custom architectures!

const hidden = tf.layers.dense({
units: hiddenUnits,
inputShape: [inputUnits],
activation: 'sigmoid',
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: add activation function to options

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added

// TODO: create the model based on many more options and defaults

const inputUnits = options.input || 2;
const hiddenUnits = Math.floor(inputUnits / 2) + 1;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: what's a good heuristic for hidden units?

this.model.add(hidden);
this.model.add(output);

const LEARNING_RATE = 0.25;
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: add to options, pick a default

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hard to decide a default LEARNING_RATE for generic neural nets, tensorflow playground defaults to 0.03. Should we pick 0.1?


this.model.compile({
optimizer,
loss: 'meanSquaredError',
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: what's a good default? Should be categoricalCrossEntropy if we add a "classification" type to options?

const options = {
  task: 'classification'
}

tensor: ys,
};
xs.dispose();
callback(null, results);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

needs to use ml5 callCallback()

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added ml5 callCallback().

this.training_ys.push(ys);
}

async train(optionsOrEpochs, callback) {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This function is a little wonky b/c it calls the callback continuously. . so that is required here the way I've implemented it. We could use callCallback() to support a promise for when it is finished training?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we could have two kinds of callbacks: whileTraining and doneTraining? As I tried to implement supporting promise and callback, it's hard to keep one callback getting called all the time, and use a promise to return results when it's done training. Then I realize that it's clearer to have separate callbacks. They are both optional.

// Use both callbacks
neuralNetwork.train(20, whileTraining, doneTraining);

// Use promise
const trainingResults = await neuralNetwork.train(20);
// trainingResults = { status: 'complete' }

// Use whileTraining callback
const trainingResults = await neuralNetwork.train(20, whileTraining);

// User doneTraining callback
neuralNetwork.train(20, null, doneTraining);

this.training_ys = [];
}

addData(xs, ys) {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure what the name of this function should be or whether it's ml5's job really to compile the data. However, this I view as analogous to addExample() with KNN or featureExtractor transfer learning. It's possible that we'll want to have a ml5.data feature for the library. At the moment I am considering "batches" to be beyond the scope of ml5 and handled internally.

}

async predict(input, callback) {
const xs = tf.tensor2d([input]);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a check here to see if the user is sending one sample or multiple samples. Wrap in an array if one sample, otherwise it's already the right shape.

@joeyklee joeyklee mentioned this pull request Aug 26, 2019
* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function
joeyklee and others added 10 commits October 2, 2019 19:22
* skipping calculating inputMin and inputMax when data not normalized

* adds check for this.data.meta.isNormalized in predictInternal
* adds input/output checks to specify number or array of input/output names

* moves model creation to training to compile after input and output units have been calcd

* cleanup code in .trainInternal()

* move vars up to top of function in .trainInternal()

* rm model creation from .createModelFromDataInternal()

* code cleanup and adds comments to .initializeIOUnits()

* code cleanup
* adds saveData function

* updates saveData() with input checks

* adds loadData function
#609)

* adds predictMultiple()

* rm ys.print()

* moves bodypix and faceapi to preload support to match base branch
@joeyklee
Copy link
Contributor

joeyklee commented Oct 9, 2019

@shiffman - Making a note about loading models which might create some problems at the moment.

In the case that a pre-trained model is loaded, running .predict() or .classify() will fail because we don't have the inputMin, inputMax, outputMin, outputMax values that are looked up when those functions are called.

As a result, given the current structure of the NeuralNetwork, loading pretrained models won't work as we hope unless users specify those values in the normalizationOptions.

I have to think about how to handle this. Any thoughts here are welcome!

@shiffman
Copy link
Member Author

shiffman commented Oct 9, 2019

Hi @joeyklee, aha, yes, this makes sense!

What about including these values as part of the metadata in model.json? I believe there is some precedent for this in the way that we have added extra metadata to transfer learning image models. I would prefer not to introduce an additional metadata.json file, but this is also an option. I recall there has been some hesitation to mess with model.json in the past as it could (?) cause problems with generic tf.js compatibility. I would say this isn't a big issue since these models wouldn't work well outside of ml5 without the data helper functionality anyway.

@joeyklee
Copy link
Contributor

joeyklee commented Oct 9, 2019

@shiffman - yep! Just made a note here: ml5js/ml5-examples#210 (comment)

@joeyklee
Copy link
Contributor

joeyklee commented Oct 9, 2019

@shiffman - Ok! The model loading issue should be addressed now in: #613

joeyklee and others added 3 commits October 9, 2019 18:11
* adds model_meta.json to savedfiles

* adds loading of model_meta.json - temp fix

* use substring method for url checking

* adds check for if input is JSON
@shiffman
Copy link
Member Author

Noting that load('model.json') doesn't work in the web editor, I think the meta file is not getting the path passed to it?

https://editor.p5js.org/ima_ml/sketches/Etmls1Eq-

Screen Shot 2019-10-10 at 11 45 25 AM

@joeyklee
Copy link
Contributor

joeyklee commented Oct 10, 2019

@shiffman - One thing is that in the web editor it looks like the /model sub director is dropped from the URL.

So it looks like the way the p5 editor handles the reference to the model file looks like this:
The file path that is given:
blob:https://editor.p5js.org/d7bdc1c9-5d3e-ad4d-950d-6941a0410be8
the model meta json is being searched for here:
blob:https://editor.p5js.org/model_meta.json

So when the reference to the model/model.json is sent in, what we get is this URL to the mongo id of that file. Where as, our fetch request that is occurring within ml5 gets all wonky because the file path being sent in is actually a reference to something else and not the actual path.

Update:

Just had a chat with @catarak and it sounds like we have some options:

  1. The model.json can live at an absolute path somewhere else with the model_meta.json and the model.weights.bin
  2. we can add in a second and third parameter to the .load() function or an array of paths that point those files of interest

I think I'd go for options number 2 to support working in the web editor. I'll make a PR for this to propose some changes.

* adds input object as param to .load()

* adds fetch to retrieve data from urls in .load() based on object

* updates object handler

* fixes check for model.json

* fixes parsing and ordering files

* adds fix for p5 web editor - must use explicit json object to load models
@shiffman shiffman changed the title [WIP] Generic Neural Network class (do not merge) Generic Neural Network class Oct 11, 2019
@shiffman
Copy link
Member Author

Everybody turn your keys and get ready for launch, in 3 .. 2 ... 1 ...

πŸš€πŸš€πŸš€
🌈🌈🌈
πŸ¦„πŸ¦„πŸ¦„

@shiffman shiffman merged commit bfb3c64 into development Oct 11, 2019
@joeyklee joeyklee deleted the generic-neural-network branch October 11, 2019 21:41
joeyklee added a commit that referenced this pull request Oct 17, 2019
* Updates dev with release and Removes /dist from past commits and future dev (#479)

* Remove unnecessary tf.tidy call

* Implement (err, value) callback style, add test for LSTMGenerator

* Callbackify Mobilenet.classify and Mobilenet.regressor

* Add events dep

* add travis.yml

* remove circleci

* removing test script

* removing package-lock.json

* update yarn.lock

* set up browserstack

* snapshot

* yarn test-travis from .travis.yml

* chmod +x trest-travis

* shebang

* bs launcher

* access key

* add a log

* kick travis

* snapshot

* change browserstack env names

* Added Browserstack badge

* Resolve https://github.com/ml5js/ml5-library/pull/151#discussion_r196475143

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196484426

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196517984

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196518890

* Add license to callCallback, return this from ImageClassifier#loadModel

* Add mocha reporter back, try to make classes thenable

* Update karma configuration

- Fixes a weird bug where tensors were spuriously disposed by tfjs in testing environment due to there being multiple tfjs instances present on the page from the different builds
- Improves stack traces to make debugging easier by disabling minification in karma webpack.
- Only webpack the main package, this means that the test files have to use the global ml5 object.

* Add tests for Word2Vec

- validates that there are no leaked tensors
- validates basic functionality of nearest
- validates that add, subtract and average return things

- Fixes memory leaks in add, subtract, average, and addOrSubtract functions
- Adds a general dispose to the Word2Vec class

* Remove console.log

* Add an easy way to run test suite once

* Handle rejected promises

* fix eslint errors in lstm and w2v

* Support for callbacks in word2vec and fix tests.
Moved the YOLO weights to the examples repo.
Fix eslint in some files

* Add tests to imageclassifier
fix video issue in imageclassifier

* - Add test for YOLO
- Add test for Imageclassifier
- Resize img if necessary in utils

* - Add license to test files
- Style transfer test
- remove .test file in posenet

* - Update poseNet version to 0.1.3
- Add posnet test

* test commit

* - Fix issues in imageclassifier

* - update pitch detection to #158
- fix event emmiter in posenet
- fix constructor in yolo
- async video util

* temp fix to test leak

* Fix posenet on video ready

* refactor pix2pix to support promises

* support promise when create a new styletransfer method

* bump to version 0.1.0

* bump to 0.1.1

* update readme

* clarification and formatting changes to ensure steps are easy to follow

* ImageClassifier: predict: handle unsupported input

* add proper attributions for models

* Update index.js

* fix eslint for links

* Update index.js

* Update index.js

* Update index.js

* Update README.md (#207)

* Support canvas elements and canvases from p5.js in ImageClassifier (#206)

* Bugfix: PitchDetection returning the wrong pitch (#187)

When converted to the current syntax, the operation was the wrong way around.
See https://github.com/marl/crepe/blob/gh-pages/crepe.js#L141 for the original.

*  fix(addImage, classify, predict): now featureExtractor works with images (it was working only with video) (#191)

* fix(addImage, classify, predict): now featureExtractor works with images (it was working only with v

* fix(addImage, classify, predict): now featureExtractor works with images (it was working only with video

* added darknet reference and darknet tiny classifiers (#201)

* added darknet reference and darknet tiny classifiers

* fixed linting stuff

* edits..

* edits2.0

* clean comments

* SketchRNN  (#189)

* init sketchrnn

* strokes

* add models

* stylefixes

* some more bugfixes

* comments

* update dependencies

* Load and save a custom model created with FeatureExtractor  (#219)

* load and save feature extractor model

* update learning rate

* add string an callback

* KNN Classifier (#171)

* added KNNClassifier class, and getFeatures method in ImageClassifier

* added knnclassifer.loaddataset, and savedataset from/as json file

* added featureExtractor.infer() to take in p5 videoelement

* support callback, and add 'label' for each class

* added getClassExampleCountByLabel, support label when save/load dataset

* update function naming, predictClass to classify, classLabel to label

* updates to way of handling strokes (#228)

* Fixing up SketchRNN (#232)

* Code of Conduct (#225)

Just noticing we don't have a code of conduct so adding to the main library repo (we can discuss whether we should put this across all repos -- probably, yes?) This is the [Contributor Covenant](https://www.contributor-covenant.org/).

* saving feature extrctor model with ml5Specs (#233)

* Stateful LSTM (#234)

* allow passing in of lstm state c and h. return more lstm info (c, h, probabilities)

* fix LSTM Stateful ness and other tweaks

* LSTM probabilities class property

* remove weird ind<100 check

* remove unnessecary initCells

* add LSTM methods state getter, setter and reset

* rename to charRNN and update stateful to match discussed api

* add callback to feed

* fix bug in predict

* adding new probabilites object

* new build

* Additional arguments option for SketchRNN (#237)

* Fixing up SketchRNN

* arguments fix for SketchRNN interactive

* adding build

* update version

* KNN update (#256)

* let knn.addExample() and classify() accept a plain array as input

* simplify and shorten knn api function names

* rename a variable in clearlabel()

* knn.save checks if file name has .json

* remove timestamp in the filename for .save()

* update package-loack to fix travis test on node 10

* update yarn lock

* fix - adds callback support for single functions in posenet re: #244 (#254)

* fix(adds callback support for single functions in posenet https://github.com/ml5js/ml5-library/issue

adds callback support for single functions in posenet
https://github.com/ml5js/ml5-library/issues/244

https://github.com/ml5js/ml5-library/issues/244

* rm package-lock.json

* fix(PoseNet/index.js): Add support for PoseNet `.singlePose()` & `.multiPose()` callback #244

Add support for PoseNet `.singlePose()` & `.multiPose()` callback #244 & updated callback error
handling

#244

* rm error check when returning callback in posenet singlePose & multiPose

* fixed indentation

* temp rm cb function

* added cb function back in

* added yarn and package lock

* added lock files from ml5 master

* updating to version 0.2.0 (#264)

* V0.2.1 Tagged Release (#267)

* updating to version 0.2.0

* run build process and built lib

* Release v0.2.1 - npm publish issue

* added github issue template (#275)

* add different ways of including ml5js on the HTML header (#268)

(We will follow up and update the version to the latest which is v0.2.1)

* updated readme specifying versions for lib (#282)

* fix: Use Blobs to save files of larger sizes (#271)

* fix: Use Blobs to save files of larger sizes

fix #270

* use saveBlob() to save knn models, delete io.saveFile(), because saveBlob does the same thing and can handle big files

* Show the version number of the library. (#283)

Adds the library version from the package.json for each build.

* fix issue that server fails to listen dev folder (#287)

*     feat(KNNClassifier): Add loadData() that enables user to load dat… (#279)

*     feat(KNNClassifier): Add loadData() that enables user to load dataset from raw data instead of file

    With load(), file path needs to be provided to load dataset. This means that JSON file that has
    dataset needs to be located on the server. You can give a way to download dataset using save(), but
    you cannot give a way to upload that file and load the dataset. This commit adds loadData() that
    enables user to load dataset from raw data. By combining this method and <INPUT type="file"> tag,
    you can give a way for user to upload dataset file.

* Merge load(path, callback) and loadData(data, callback) into load(pathOrJson, callback).

* Merge load() and loadData() in a cleaner way without using Symbol.

Ref. https://github.com/ml5js/ml5-library/pull/279#issuecomment-465890231

* feat(src/PoseNet/index.js): Ability to access parts of pose by name.

Now can simply do pose.nose.x or pose.nose.confidence. Using original PoseNet naming scheme (i.e.
rightShoulder).

re #245

* Update ImageClassifier and FeatureExtractor to return [{label, confidence}] (#292)

* change imageClassifier.predict() to classify(), keep predict until later version

* update imageclassifier.classify results to [{label: .., confidence: ..}]

* update featureExtractor regressor return {value: 0-1}

* update featureextractor.classify to return [{label, confidence}]

* Support p5 preload with ml5 functions (#288)

* support p5 preload with ml5 functions

* make withPreload object clean

* an automatic script to initialize experiments dir (#295)

* an alternative way to test with experiments dir

* revert change for webpack.dev

* Change experiments to manual-test

* rename folder to manual-test

* update .gitignore

* patch style transfer for non-square and canvas-derived inputs (#311)

* fix preload bugs (#305)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318) (#319)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Add tests to CharRNN (#307) (#320)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Updated CONTRIBUTING docs and README (#322)

* updated readme specifying versions for lib

* added documentation to contributing.md

* added updates

* added label and confidence as output for yolo results (#316)

* added label and confidence as output

* updates yolo test to use label instead of className

* Increase test timeout (#321)

* added label and confidence as output

* updates yolo test to use label instead of className

* set jasmine.DEFAULT_TIMEOUT_INTERVAL to 60000ms

* Merges in https://github.com/ml5js/ml5-library/pull/313 via master using deprecating-master branch (#323)

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* added v0.2.2 to package.json in anticipation of new release

* Fixing an issue with prettier and eslint (#324)

* Fixing an issue with prettier and eslint

There is a conflict between arrow syntax rules in airbnb eslint
configuration and the way default prettier works in VSCode. These
additional setting should help anyone using VSCode with autoformat +
prettier to not run into problems building the library.

I am open to better ways of handling this of course!

(Note the changes in ImageClassifier are trivial and just testing).

* adding eslint-config-prettier as dev dependency

* trivial change to run tests again

* Adjust charrnn test option length (#326)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* Adjust charrnn length - comment 2nd test for now (#329)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* comment out second charRNN test for now to allow merging PRs

* Forcing magenta dependency to 0.1.2 (#328)

The SketchRNN example doesn't work with more recent magenta (0.1.4)
probably due to us lagging behind in versions of tf.js?

* SketchRNN creation function should be lowercase (#325)

This is related to the discussion in #297.

* added v0.2.2 to package.json in anticipation of new release (#330)

hooray adding release v0.2.2

* Release v0.2.2 πŸŽ‰ (#331)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318) (#319)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Add tests to CharRNN (#307) (#320)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Updated CONTRIBUTING docs and README (#322)

* updated readme specifying versions for lib

* added documentation to contributing.md

* added updates

* added label and confidence as output for yolo results (#316)

* added label and confidence as output

* updates yolo test to use label instead of className

* Increase test timeout (#321)

* added label and confidence as output

* updates yolo test to use label instead of className

* set jasmine.DEFAULT_TIMEOUT_INTERVAL to 60000ms

* Merges in https://github.com/ml5js/ml5-library/pull/313 via master using deprecating-master branch (#323)

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* added v0.2.2 to package.json in anticipation of new release

* Fixing an issue with prettier and eslint (#324)

* Fixing an issue with prettier and eslint

There is a conflict between arrow syntax rules in airbnb eslint
configuration and the way default prettier works in VSCode. These
additional setting should help anyone using VSCode with autoformat +
prettier to not run into problems building the library.

I am open to better ways of handling this of course!

(Note the changes in ImageClassifier are trivial and just testing).

* adding eslint-config-prettier as dev dependency

* trivial change to run tests again

* Adjust charrnn test option length (#326)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* Adjust charrnn length - comment 2nd test for now (#329)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* comment out second charRNN test for now to allow merging PRs

* Forcing magenta dependency to 0.1.2 (#328)

The SketchRNN example doesn't work with more recent magenta (0.1.4)
probably due to us lagging behind in versions of tf.js?

* SketchRNN creation function should be lowercase (#325)

This is related to the discussion in #297.

* added v0.2.2 to package.json in anticipation of new release (#330)

hooray adding release v0.2.2

* added latest v0.2.2

* Some minor README adjustments (#334)

* I am de-emphasizing `@latest` as in my experience this can lead to confusion.
* I don't think my name needs to be referenced!

* V0.2.3 (#341)

* ran npm install, added new package json version, and built dist

* updated package lock

* updated package lock and ran build

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* 🌈 New Release: ml5.js v0.3.0 πŸŽ‰ (#386)

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* 🌈 New Release: ml5.js v0.3.0 πŸŽ‰ (#386)

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* added ml5.imageClassifier(doodleNet)

* doodlenet: transfer input img to black white image

* warm up model, comments

* added ml5.soundClassifier(speech-command)

* Revert "added ml5.soundClassifier(speech-command)"

This reverts commit 317c146450d65aa1ad9f1ef67bf912a792b0d8a0.

* update darknet link to use jsdelivr instead (#391)

* changed cdn link to doodlenet model (#390)

* adding ml5.soundClassifier(speech-commands) (#389)

* added ml5.soundClassifier(speech-commands)

* not require fs node module for testing

* Reuse getTopKClasses in doodlenet, darkneet and speech-commands

* fix: getTopKClasses return className and probability

* DCGAN refactor + preload (#398)

* restructure dcgan to accept path to manifest.json

* added check for absolute or relative url path

* rm console.log

* added DEFAULT if modelPath is null or undefined in jsonLoader

* use async/await in loadModel

* add dcgan to preload

* fixed breaking change

* updated index

* added modelReady prop

* shows preload working without additional async call to load manifest

* allows for preload

* added a bird image for testing purpose

* update bird image link from ml5-library for testing (#403)

* renaming model names to ml5.soundClassifier(SpeechCommands18w) (#404)

* ml5.featureExtractor loading models from the new teachable machine (#395)

* load model from new teachable machine

* featureExtractor use jointModel

* only train custom model but save the joint model

* Bodypix (#400)

* added BodyPix placeholder

* "@tensorflow-models/body-pix": "1.0.1",

* initial commit placeholder for bodypix

* added bodypix as bp and loadModel()

* added segment and segmentInternal

* change promise to async

* return result maskPerson and maskBackground

* adds part segmentation

* rm log

* add segmentation as result.raw

* add function to create bodyParts spec object

* added test

* added optional segmentationOptions param to segment() and segmentWithParts()

* added package.lock

* updated DEFAULTS to BODYPIX_DEFAULTS

* code cleanup

* added comments

* added jsdoc comments

* add check p5 color()

* updated bodyPartSpec image color handling for p5

* changed palette spec to object

* ml5.imageClassifier() loads pre-trained custom model (#408)

* imageClassifier load a model from url

* added options to local model from local files

* supports imageClassifier.classify(video)

* ml5.soundClassifier(url)

* docs: add shiffman as a contributor (#410)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: add cvalenzuela as a contributor (#414)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: update README.md

* docs: update .all-contributorsrc

* rm files to start fresh (#417)

* docs: add shiffman as a contributor (#418)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: add cvalenzuela as a contributor (#419)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add yining1023 as a contributor (#421)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add handav as a contributor (#423)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add joeyklee as a contributor (#424)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AshleyJaneLewis as a contributor (#425)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add ellennickles as a contributor (#426)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add itayniv as a contributor (#427)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nikitahuggins as a contributor (#428)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AbolTaabol as a contributor (#429)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AidanNelson as a contributor (#430)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add WenheLI as a contributor (#431)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add dariusk as a contributor (#432)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Derek-Wds as a contributor (#433)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add garym140 as a contributor (#434)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add genekogan as a contributor (#435)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add hhayley as a contributor (#436)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add lisajamhoury as a contributor (#437)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add matamalaortiz as a contributor (#438)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add mayaman as a contributor (#439)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add MimiOnuoha as a contributor (#440)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add NHibiki as a contributor (#441)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add oveddan as a contributor (#442)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add stephkoltun as a contributor (#443)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add viztopia as a contributor (#444)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add wenqili as a contributor (#446)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add brondle as a contributor (#447)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Jonarod as a contributor (#448)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add JazzTap as a contributor (#449)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add zaidalyafeai as a contributor (#450)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AlcaDesign as a contributor (#451)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add memo as a contributor (#452)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add TheHidden1 as a contributor (#453)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add meiamsome as a contributor (#454)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add marshalhayes as a contributor (#455)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add reiinakano as a contributor (#456)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nsthorat as a contributor (#457)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add irealva as a contributor (#458)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add vndrewlee as a contributor (#459)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add fjcamillo as a contributor (#460)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add achimkoh as a contributor (#461)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add hx2A as a contributor (#462)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add champierre as a contributor (#465)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add micuat as a contributor (#466)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add montoyamoraga as a contributor (#467)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add b2renger as a contributor (#468)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add adityaas26 as a contributor (#469)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add okuna291 as a contributor (#470)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add xujenna as a contributor (#471)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nicoleflloyd as a contributor (#472)

* docs: update README.md

* docs: update .all-contributorsrc

* updated package-lock

* pass vector to dcgan compute

* Adds face-api.js to ml5.js (#482)

* initial commit - add classifyExpressions

* added classifyExpressionsMultiple() and classifyExpressionsSingle()

* remove modelPath requirement in favor of defaults

* updated index with links to tiny landmarks

* adds option to add relative path or absolute url

* updated url checking for models

* changed function names

* updated functions to .detect() and .detectSingle()

* check undefined, otherwise assign

* added resize function to results by default

* code cleanup

* added test to faceapi

* added tests

* added face parts to result.parts

* code cleanup

* changed options from withFaceX to withX

* code cleanup

* code cleanup

* fixed conditional to include face .withFaceDescriptor(s)

* docs: add jepster-dk as a contributor (#489)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add xanderjakeq as a contributor (#490)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add catarak as a contributor (#491)

* docs: update README.md

* docs: update .all-contributorsrc

* [WIP]Change p5Utils into a class

* dcgan: use random vector if no latent vector is given

* dcgan check if arg is array

* updated code of conduct with adapted p5 community statement (#492)

* updated code of conduct with adapted p5 community statement

* Update CODE_OF_CONDUCT.md

rm coding train from donation // todo - add other relevant orgs next

Co-Authored-By: Daniel Shiffman <daniel.shiffman@gmail.com>

* updated enforcement with ashley and dan

* rm redundant all contributors badge (#497)

* Readme updates (#505)

* added package.lock

* updates links to latest website

* rm 'with no external deps'

* set correct url to image (#507)

* docs: add dcbriccetti as a contributor (#506)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Sblob1 as a contributor (#513)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: update README.md

* docs: update .all-contributorsrc

* Fu

* add command line arguments for testing single model

* Handling p5 Image in PoseNet singlePose

I have changed singlePose function in order to handle p5 Image types. 

However I'm not sure if the check is thorough enough. Any pointers are welcome.

* Adds ImageData support for all image handling functions (#525)

* added ImageData support to YOLO

* adds ImageData support to UNET

* adds ImageData support to StyleTransfer

* adds ImageData support to PoseNet

* adds ImageData support for ImageClassifier/darknet

* adds ImageData support for ImageClassifier/doodlenet

* adds ImageData support for BodyPix and cleans up conditionals

* adds ImageData support to faceApi and cleans up conditionals

* adds ImageData support for imageclassifier and cleans up conditional

* fix image handling for bodypix faceapi and imageclassifier

* update mobilenet imageData support

* check imagedata in yolo

* adds ImageData test to BodyPix

* adds check for canvas (#526)

* Fixes Posenet input arguments and related issues (#529)

* adds this.multiPose() to else{}

* fixes conditional check on object or string

* added kmeans

* added randomSample function

* re-ordered name placement

* fixed weird indentation error

* indentation

* removed optional keyword in docstring

* updates issue and pull request templates (#530)

* Created config class attribute to store instance params

* Adds release script helper (#534)

* adds release helper function

* update name and sep step for release:push

* add release:publish

* Adds release script helper (#535)

* adds release helper function

* update name and sep step for release:push

* add release:publish

* adds tagging to release:publish

* fixes typo

* added test to kmeans (#536)

* docs: add jwilber as a contributor (#537)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add tezzutezzu as a contributor (#538)

* docs: update README.md

* docs: update .all-contributorsrc

* Update Contributing and Github docs (#539)

* updated issue template:

* update PR template

* added new release how to

* docs: add EmmaGoodliffe as a contributor (#545)

* docs: update README.md

* docs: update .all-contributorsrc

* Update tfjs ~v1.2.2 (#544)

* updated tfjs to 1.2.2 and bumped face-api to 0.20.1

* bump tensorflow models

* bump body-pix version

* adds version 2 to feature extractor

* updated to mobilenetv2 api

* updates to posenet 2 api

* always process and resize images in mobilenet

* update test with version 2

* update posenet inputs and test

* fix issue with params in posenet

* updates conditional in p5Utils

* add loadImage test (#549)

* Update npm helper scripts for making releases (#552)

* updating release process scripts and docs

* updated release proces npm scripts and docs

* added release:sync and developement:sync"
"

* set fe to mobilenet v1 - use layers model (#554)

* Adds Docsify to consolidate documentation (#556)

* add docsify-cli as dev dep

* adds docs structure for docsify

* adds bodyPix documentation example

* update bodypix documentation

* adds imageClassifer docs

* added styleguide template and updated docs

* changed name of reference template

* added dev guidelines

* update dev guidelines

* adds posenet docs

* adds tutorials and faq

* add dev:docs npm script

* adds char rnn to docs

* Adds documentation for references to docsify docs (#557)

* add note on all contributors bot

* adds faceapi header img"

* adds design guidelines

* adds design guidelines to sidebar

* adds section for p5 web editor examples

* adds cvae refs

* update bodypix and charrnn docs

* added dcgan docs

* adds pitch detection docs

* adds featureExtractor docs

* adds knn classifier

* update tutorial refs

* adds pix2pix doc

* adds sentiment docs

* adds sketchrnn ref

* adds sound classifier

* adds styletransfer docs

* adds unet docs

* adds word2vec docs

* adds yolo docs

* adds acknowledgements section

* adds acknowledgements section

* Fixes Doodlenet - set new axes and .floor() (#559)

* change split axis to 3 axes

* use floor() instead of round()

* adds options for detection confidence (#561)

* Adds labels to custom image classification model from Teachable Machine output

* Addressing issue #590 part 1 (#592)
>The saved labels from Teachable Machine should be loaded by ml5. I believe this is working for sound classification, but not for images.

Fetching labels from metadata.json when loading models from the new Teachable Machine.

* docs: add EonYang as a contributor (#593)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add lydiajessup as a contributor (#594)

* docs: update README.md

* docs: update .all-contributorsrc

* set alias for sidebar (#598)

* update docsify config

* testing pathways

* adds sublevel 2

* rm sidebar comment

* testing sidebar nested list issue

* relative path is false - using gh-pages

* testing - pls ignore

* testing plugin issue

* drop alias

* added no jekyll to root"

* testing pathway for images

* rm dot from path

* set rel path

* changed images to _media

* use _media path for images

* [Docs] Uses gh-pages to serve docsify docs (#599)

* update docsify config

* testing pathways

* adds sublevel 2

* rm sidebar comment

* testing sidebar nested list issue

* relative path is false - using gh-pages

* testing - pls ignore

* testing plugin issue

* drop alias

* added no jekyll to root"

* testing pathway for images

* rm dot from path

* set rel path

* changed images to _media

* use _media path for images

* adds header nav to docs

* updates alt text and image url

* adds getting started url

* adds reference index

* updates href to reference in nav (#601)

* [face-api] Removes expressions support from face-api in ml5.js (#602)

* rm faceapi expressions support

* rm expression ref in comment

* updates tests for faceapi

* fixes single detection and tests

* Update docs (#603)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds face-api and neural-network placeholder

* adds section for web editor

* set to /tree/development and adds posenet examples

* adds link to src code

* updates references to examples

* sets tree/development as path

* updates face-api and neural net docs

* Revert "Update docs (#603)" (#604)

This reverts commit c6b78d0a7aedc7050a095386ad88300d91a761b2.

* Updates docsify docs (#605)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds face-api and neural-network placeholder

* adds section for web editor

* set to /tree/development and adds posenet examples

* adds link to src code

* updates references to examples

* sets tree/development as path

* updates face-api and neural net docs

* rm neural net class from update-docs branch

* moves bodyPix to support preload() (#610)

* Adds preload support to faceApi  (#611)

* moves bodyPix to support preload()

* adds faceapi to preload

* Updates Docs with latest features (#612)

* adds face-api updates and neural network docs updates

* adds docs for nn functions

* adds save and load docs

* adds neural Network documentation

* fixes backticks

* adds sidebar dividers

* adds docs on model loading and contributors (#616)

* Updates gh templates (#617)

* updates PR template

* updates gh issues template

* updates template

* Generic Neural Network class (#485)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds blob reader for json

* [diy nn] moves tf-vis visualizations to helper class (#583)

* adds tfvis to neuralNetworkVis.js

* adds tfvis to class

* handle text and convert to json (#584)

* allow user more control in the case of classification

* allow user more control in the case of classification (#585)

* Refactoring DIY Neural Network (#591)

* [wip] refactoring data handling and logic separation

* wip adding convertRawToTensor

* adds conversion to tensor

* adds normalization step

* adds train()

* adds predictInternal()

* fixes unique value mapping issue

* comment out .print()

* return all regression results

* adds experimental normalizationOptions object

* quick fix for checking if normalizationOptions exists

* commenting out auto tensor printing

* adds checks for normalizationOptions

* fix obj ref in conditional

* adds .normalizeData() - keeps .normalize() for now

* changes whileTraining function when debug is true

* adds layer options for adding more than 2 layers - experimentalgit add .

* remove .normalize() in favor of .normalizeData()

* adds save() and load()

* adds data.warmUp() to allow training without normalization - handled internally on train

* updates outputs of .predict() and .classify() to be array

* Divide by 0 issue when data is not normalized (#596)

* skipping calculating inputMin and inputMax when data not normalized

* adds check for this.data.meta.isNormalized in predictInternal

* Diy nn code cleanup (#606)

* adds input/output checks to specify number or array of input/output names

* moves model creation to training to compile after input and output units have been calcd

* cleanup code in .trainInternal()

* move vars up to top of function in .trainInternal()

* rm model creation from .createModelFromDataInternal()

* code cleanup and adds comments to .initializeIOUnits()

* code cleanup

* [DIY NN] Adds .saveData() and .loadData() (#607)

* adds saveData function

* updates saveData() with input checks

* adds loadData function

* [Diy NN] Adds .predictMultiple() for batch predictions/classifications (#609)

* adds predictMultiple()

* rm ys.print()

* moves bodypix and faceapi to preload support to match base branch

* [DIY nn] Neural Net Fixes loading pre-trained model (#613)

* adds model_meta.json to savedfiles

* adds loading of model_meta.json - temp fix

* use substring method for url checking

* adds check for if input is JSON

* loadData and text variables mixed up (#615)

* [Diy nn] fix model loading load (Work in progress) (#618)

* adds input object as param to .load()

* adds fetch to retrieve data from urls in .load() based on object

* updates object handler

* fixes check for model.json

* fixes parsing and ordering files

* adds fix for p5 web editor - must use explicit json object to load models

* allows user to add video to .segment() and .segmentWithParts() (#619)

* updates unet docs (#620)

* adds basic test for defaults (#621)

* docs: add EmmaGoodliffe as a contributor (#622)

* docs: update README.md

* docs: update .all-contributorsrc

* adds fix for unet image return for p5 (#625)

* updates webpack dev server to 3.1.11 (#629)

* Fixes vulnerabilities noted by npm (#630)

* run npm audit fix

* bumps commitizen dep

* updated readme and readme updater (#632)

* Update NeuralNetwork docs (#631)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

…
joeyklee added a commit that referenced this pull request Nov 4, 2019
…ch (#676)

* ml5 release v0.4.0 (#640)

* Updates dev with release and Removes /dist from past commits and future dev (#479)

* Remove unnecessary tf.tidy call

* Implement (err, value) callback style, add test for LSTMGenerator

* Callbackify Mobilenet.classify and Mobilenet.regressor

* Add events dep

* add travis.yml

* remove circleci

* removing test script

* removing package-lock.json

* update yarn.lock

* set up browserstack

* snapshot

* yarn test-travis from .travis.yml

* chmod +x trest-travis

* shebang

* bs launcher

* access key

* add a log

* kick travis

* snapshot

* change browserstack env names

* Added Browserstack badge

* Resolve https://github.com/ml5js/ml5-library/pull/151#discussion_r196475143

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196484426

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196517984

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196518890

* Add license to callCallback, return this from ImageClassifier#loadModel

* Add mocha reporter back, try to make classes thenable

* Update karma configuration

- Fixes a weird bug where tensors were spuriously disposed by tfjs in testing environment due to there being multiple tfjs instances present on the page from the different builds
- Improves stack traces to make debugging easier by disabling minification in karma webpack.
- Only webpack the main package, this means that the test files have to use the global ml5 object.

* Add tests for Word2Vec

- validates that there are no leaked tensors
- validates basic functionality of nearest
- validates that add, subtract and average return things

- Fixes memory leaks in add, subtract, average, and addOrSubtract functions
- Adds a general dispose to the Word2Vec class

* Remove console.log

* Add an easy way to run test suite once

* Handle rejected promises

* fix eslint errors in lstm and w2v

* Support for callbacks in word2vec and fix tests.
Moved the YOLO weights to the examples repo.
Fix eslint in some files

* Add tests to imageclassifier
fix video issue in imageclassifier

* - Add test for YOLO
- Add test for Imageclassifier
- Resize img if necessary in utils

* - Add license to test files
- Style transfer test
- remove .test file in posenet

* - Update poseNet version to 0.1.3
- Add posnet test

* test commit

* - Fix issues in imageclassifier

* - update pitch detection to #158
- fix event emmiter in posenet
- fix constructor in yolo
- async video util

* temp fix to test leak

* Fix posenet on video ready

* refactor pix2pix to support promises

* support promise when create a new styletransfer method

* bump to version 0.1.0

* bump to 0.1.1

* update readme

* clarification and formatting changes to ensure steps are easy to follow

* ImageClassifier: predict: handle unsupported input

* add proper attributions for models

* Update index.js

* fix eslint for links

* Update index.js

* Update index.js

* Update index.js

* Update README.md (#207)

* Support canvas elements and canvases from p5.js in ImageClassifier (#206)

* Bugfix: PitchDetection returning the wrong pitch (#187)

When converted to the current syntax, the operation was the wrong way around.
See https://github.com/marl/crepe/blob/gh-pages/crepe.js#L141 for the original.

*  fix(addImage, classify, predict): now featureExtractor works with images (it was working only with video) (#191)

* fix(addImage, classify, predict): now featureExtractor works with images (it was working only with v

* fix(addImage, classify, predict): now featureExtractor works with images (it was working only with video

* added darknet reference and darknet tiny classifiers (#201)

* added darknet reference and darknet tiny classifiers

* fixed linting stuff

* edits..

* edits2.0

* clean comments

* SketchRNN  (#189)

* init sketchrnn

* strokes

* add models

* stylefixes

* some more bugfixes

* comments

* update dependencies

* Load and save a custom model created with FeatureExtractor  (#219)

* load and save feature extractor model

* update learning rate

* add string an callback

* KNN Classifier (#171)

* added KNNClassifier class, and getFeatures method in ImageClassifier

* added knnclassifer.loaddataset, and savedataset from/as json file

* added featureExtractor.infer() to take in p5 videoelement

* support callback, and add 'label' for each class

* added getClassExampleCountByLabel, support label when save/load dataset

* update function naming, predictClass to classify, classLabel to label

* updates to way of handling strokes (#228)

* Fixing up SketchRNN (#232)

* Code of Conduct (#225)

Just noticing we don't have a code of conduct so adding to the main library repo (we can discuss whether we should put this across all repos -- probably, yes?) This is the [Contributor Covenant](https://www.contributor-covenant.org/).

* saving feature extrctor model with ml5Specs (#233)

* Stateful LSTM (#234)

* allow passing in of lstm state c and h. return more lstm info (c, h, probabilities)

* fix LSTM Stateful ness and other tweaks

* LSTM probabilities class property

* remove weird ind<100 check

* remove unnessecary initCells

* add LSTM methods state getter, setter and reset

* rename to charRNN and update stateful to match discussed api

* add callback to feed

* fix bug in predict

* adding new probabilites object

* new build

* Additional arguments option for SketchRNN (#237)

* Fixing up SketchRNN

* arguments fix for SketchRNN interactive

* adding build

* update version

* KNN update (#256)

* let knn.addExample() and classify() accept a plain array as input

* simplify and shorten knn api function names

* rename a variable in clearlabel()

* knn.save checks if file name has .json

* remove timestamp in the filename for .save()

* update package-loack to fix travis test on node 10

* update yarn lock

* fix - adds callback support for single functions in posenet re: #244 (#254)

* fix(adds callback support for single functions in posenet https://github.com/ml5js/ml5-library/issue

adds callback support for single functions in posenet
https://github.com/ml5js/ml5-library/issues/244

https://github.com/ml5js/ml5-library/issues/244

* rm package-lock.json

* fix(PoseNet/index.js): Add support for PoseNet `.singlePose()` & `.multiPose()` callback #244

Add support for PoseNet `.singlePose()` & `.multiPose()` callback #244 & updated callback error
handling

#244

* rm error check when returning callback in posenet singlePose & multiPose

* fixed indentation

* temp rm cb function

* added cb function back in

* added yarn and package lock

* added lock files from ml5 master

* updating to version 0.2.0 (#264)

* V0.2.1 Tagged Release (#267)

* updating to version 0.2.0

* run build process and built lib

* Release v0.2.1 - npm publish issue

* added github issue template (#275)

* add different ways of including ml5js on the HTML header (#268)

(We will follow up and update the version to the latest which is v0.2.1)

* updated readme specifying versions for lib (#282)

* fix: Use Blobs to save files of larger sizes (#271)

* fix: Use Blobs to save files of larger sizes

fix #270

* use saveBlob() to save knn models, delete io.saveFile(), because saveBlob does the same thing and can handle big files

* Show the version number of the library. (#283)

Adds the library version from the package.json for each build.

* fix issue that server fails to listen dev folder (#287)

*     feat(KNNClassifier): Add loadData() that enables user to load dat… (#279)

*     feat(KNNClassifier): Add loadData() that enables user to load dataset from raw data instead of file

    With load(), file path needs to be provided to load dataset. This means that JSON file that has
    dataset needs to be located on the server. You can give a way to download dataset using save(), but
    you cannot give a way to upload that file and load the dataset. This commit adds loadData() that
    enables user to load dataset from raw data. By combining this method and <INPUT type="file"> tag,
    you can give a way for user to upload dataset file.

* Merge load(path, callback) and loadData(data, callback) into load(pathOrJson, callback).

* Merge load() and loadData() in a cleaner way without using Symbol.

Ref. https://github.com/ml5js/ml5-library/pull/279#issuecomment-465890231

* feat(src/PoseNet/index.js): Ability to access parts of pose by name.

Now can simply do pose.nose.x or pose.nose.confidence. Using original PoseNet naming scheme (i.e.
rightShoulder).

re #245

* Update ImageClassifier and FeatureExtractor to return [{label, confidence}] (#292)

* change imageClassifier.predict() to classify(), keep predict until later version

* update imageclassifier.classify results to [{label: .., confidence: ..}]

* update featureExtractor regressor return {value: 0-1}

* update featureextractor.classify to return [{label, confidence}]

* Support p5 preload with ml5 functions (#288)

* support p5 preload with ml5 functions

* make withPreload object clean

* an automatic script to initialize experiments dir (#295)

* an alternative way to test with experiments dir

* revert change for webpack.dev

* Change experiments to manual-test

* rename folder to manual-test

* update .gitignore

* patch style transfer for non-square and canvas-derived inputs (#311)

* fix preload bugs (#305)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318) (#319)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Add tests to CharRNN (#307) (#320)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Updated CONTRIBUTING docs and README (#322)

* updated readme specifying versions for lib

* added documentation to contributing.md

* added updates

* added label and confidence as output for yolo results (#316)

* added label and confidence as output

* updates yolo test to use label instead of className

* Increase test timeout (#321)

* added label and confidence as output

* updates yolo test to use label instead of className

* set jasmine.DEFAULT_TIMEOUT_INTERVAL to 60000ms

* Merges in https://github.com/ml5js/ml5-library/pull/313 via master using deprecating-master branch (#323)

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* added v0.2.2 to package.json in anticipation of new release

* Fixing an issue with prettier and eslint (#324)

* Fixing an issue with prettier and eslint

There is a conflict between arrow syntax rules in airbnb eslint
configuration and the way default prettier works in VSCode. These
additional setting should help anyone using VSCode with autoformat +
prettier to not run into problems building the library.

I am open to better ways of handling this of course!

(Note the changes in ImageClassifier are trivial and just testing).

* adding eslint-config-prettier as dev dependency

* trivial change to run tests again

* Adjust charrnn test option length (#326)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* Adjust charrnn length - comment 2nd test for now (#329)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* comment out second charRNN test for now to allow merging PRs

* Forcing magenta dependency to 0.1.2 (#328)

The SketchRNN example doesn't work with more recent magenta (0.1.4)
probably due to us lagging behind in versions of tf.js?

* SketchRNN creation function should be lowercase (#325)

This is related to the discussion in #297.

* added v0.2.2 to package.json in anticipation of new release (#330)

hooray adding release v0.2.2

* Release v0.2.2 πŸŽ‰ (#331)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318) (#319)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Add tests to CharRNN (#307) (#320)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Updated CONTRIBUTING docs and README (#322)

* updated readme specifying versions for lib

* added documentation to contributing.md

* added updates

* added label and confidence as output for yolo results (#316)

* added label and confidence as output

* updates yolo test to use label instead of className

* Increase test timeout (#321)

* added label and confidence as output

* updates yolo test to use label instead of className

* set jasmine.DEFAULT_TIMEOUT_INTERVAL to 60000ms

* Merges in https://github.com/ml5js/ml5-library/pull/313 via master using deprecating-master branch (#323)

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* added v0.2.2 to package.json in anticipation of new release

* Fixing an issue with prettier and eslint (#324)

* Fixing an issue with prettier and eslint

There is a conflict between arrow syntax rules in airbnb eslint
configuration and the way default prettier works in VSCode. These
additional setting should help anyone using VSCode with autoformat +
prettier to not run into problems building the library.

I am open to better ways of handling this of course!

(Note the changes in ImageClassifier are trivial and just testing).

* adding eslint-config-prettier as dev dependency

* trivial change to run tests again

* Adjust charrnn test option length (#326)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* Adjust charrnn length - comment 2nd test for now (#329)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* comment out second charRNN test for now to allow merging PRs

* Forcing magenta dependency to 0.1.2 (#328)

The SketchRNN example doesn't work with more recent magenta (0.1.4)
probably due to us lagging behind in versions of tf.js?

* SketchRNN creation function should be lowercase (#325)

This is related to the discussion in #297.

* added v0.2.2 to package.json in anticipation of new release (#330)

hooray adding release v0.2.2

* added latest v0.2.2

* Some minor README adjustments (#334)

* I am de-emphasizing `@latest` as in my experience this can lead to confusion.
* I don't think my name needs to be referenced!

* V0.2.3 (#341)

* ran npm install, added new package json version, and built dist

* updated package lock

* updated package lock and ran build

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* 🌈 New Release: ml5.js v0.3.0 πŸŽ‰ (#386)

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* 🌈 New Release: ml5.js v0.3.0 πŸŽ‰ (#386)

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* added ml5.imageClassifier(doodleNet)

* doodlenet: transfer input img to black white image

* warm up model, comments

* added ml5.soundClassifier(speech-command)

* Revert "added ml5.soundClassifier(speech-command)"

This reverts commit 317c146450d65aa1ad9f1ef67bf912a792b0d8a0.

* update darknet link to use jsdelivr instead (#391)

* changed cdn link to doodlenet model (#390)

* adding ml5.soundClassifier(speech-commands) (#389)

* added ml5.soundClassifier(speech-commands)

* not require fs node module for testing

* Reuse getTopKClasses in doodlenet, darkneet and speech-commands

* fix: getTopKClasses return className and probability

* DCGAN refactor + preload (#398)

* restructure dcgan to accept path to manifest.json

* added check for absolute or relative url path

* rm console.log

* added DEFAULT if modelPath is null or undefined in jsonLoader

* use async/await in loadModel

* add dcgan to preload

* fixed breaking change

* updated index

* added modelReady prop

* shows preload working without additional async call to load manifest

* allows for preload

* added a bird image for testing purpose

* update bird image link from ml5-library for testing (#403)

* renaming model names to ml5.soundClassifier(SpeechCommands18w) (#404)

* ml5.featureExtractor loading models from the new teachable machine (#395)

* load model from new teachable machine

* featureExtractor use jointModel

* only train custom model but save the joint model

* Bodypix (#400)

* added BodyPix placeholder

* "@tensorflow-models/body-pix": "1.0.1",

* initial commit placeholder for bodypix

* added bodypix as bp and loadModel()

* added segment and segmentInternal

* change promise to async

* return result maskPerson and maskBackground

* adds part segmentation

* rm log

* add segmentation as result.raw

* add function to create bodyParts spec object

* added test

* added optional segmentationOptions param to segment() and segmentWithParts()

* added package.lock

* updated DEFAULTS to BODYPIX_DEFAULTS

* code cleanup

* added comments

* added jsdoc comments

* add check p5 color()

* updated bodyPartSpec image color handling for p5

* changed palette spec to object

* ml5.imageClassifier() loads pre-trained custom model (#408)

* imageClassifier load a model from url

* added options to local model from local files

* supports imageClassifier.classify(video)

* ml5.soundClassifier(url)

* docs: add shiffman as a contributor (#410)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: add cvalenzuela as a contributor (#414)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: update README.md

* docs: update .all-contributorsrc

* rm files to start fresh (#417)

* docs: add shiffman as a contributor (#418)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: add cvalenzuela as a contributor (#419)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add yining1023 as a contributor (#421)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add handav as a contributor (#423)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add joeyklee as a contributor (#424)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AshleyJaneLewis as a contributor (#425)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add ellennickles as a contributor (#426)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add itayniv as a contributor (#427)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nikitahuggins as a contributor (#428)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AbolTaabol as a contributor (#429)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AidanNelson as a contributor (#430)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add WenheLI as a contributor (#431)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add dariusk as a contributor (#432)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Derek-Wds as a contributor (#433)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add garym140 as a contributor (#434)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add genekogan as a contributor (#435)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add hhayley as a contributor (#436)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add lisajamhoury as a contributor (#437)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add matamalaortiz as a contributor (#438)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add mayaman as a contributor (#439)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add MimiOnuoha as a contributor (#440)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add NHibiki as a contributor (#441)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add oveddan as a contributor (#442)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add stephkoltun as a contributor (#443)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add viztopia as a contributor (#444)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add wenqili as a contributor (#446)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add brondle as a contributor (#447)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Jonarod as a contributor (#448)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add JazzTap as a contributor (#449)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add zaidalyafeai as a contributor (#450)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AlcaDesign as a contributor (#451)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add memo as a contributor (#452)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add TheHidden1 as a contributor (#453)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add meiamsome as a contributor (#454)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add marshalhayes as a contributor (#455)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add reiinakano as a contributor (#456)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nsthorat as a contributor (#457)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add irealva as a contributor (#458)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add vndrewlee as a contributor (#459)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add fjcamillo as a contributor (#460)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add achimkoh as a contributor (#461)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add hx2A as a contributor (#462)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add champierre as a contributor (#465)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add micuat as a contributor (#466)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add montoyamoraga as a contributor (#467)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add b2renger as a contributor (#468)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add adityaas26 as a contributor (#469)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add okuna291 as a contributor (#470)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add xujenna as a contributor (#471)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nicoleflloyd as a contributor (#472)

* docs: update README.md

* docs: update .all-contributorsrc

* updated package-lock

* pass vector to dcgan compute

* Adds face-api.js to ml5.js (#482)

* initial commit - add classifyExpressions

* added classifyExpressionsMultiple() and classifyExpressionsSingle()

* remove modelPath requirement in favor of defaults

* updated index with links to tiny landmarks

* adds option to add relative path or absolute url

* updated url checking for models

* changed function names

* updated functions to .detect() and .detectSingle()

* check undefined, otherwise assign

* added resize function to results by default

* code cleanup

* added test to faceapi

* added tests

* added face parts to result.parts

* code cleanup

* changed options from withFaceX to withX

* code cleanup

* code cleanup

* fixed conditional to include face .withFaceDescriptor(s)

* docs: add jepster-dk as a contributor (#489)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add xanderjakeq as a contributor (#490)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add catarak as a contributor (#491)

* docs: update README.md

* docs: update .all-contributorsrc

* [WIP]Change p5Utils into a class

* dcgan: use random vector if no latent vector is given

* dcgan check if arg is array

* updated code of conduct with adapted p5 community statement (#492)

* updated code of conduct with adapted p5 community statement

* Update CODE_OF_CONDUCT.md

rm coding train from donation // todo - add other relevant orgs next

Co-Authored-By: Daniel Shiffman <daniel.shiffman@gmail.com>

* updated enforcement with ashley and dan

* rm redundant all contributors badge (#497)

* Readme updates (#505)

* added package.lock

* updates links to latest website

* rm 'with no external deps'

* set correct url to image (#507)

* docs: add dcbriccetti as a contributor (#506)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Sblob1 as a contributor (#513)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: update README.md

* docs: update .all-contributorsrc

* Fu

* add command line arguments for testing single model

* Handling p5 Image in PoseNet singlePose

I have changed singlePose function in order to handle p5 Image types. 

However I'm not sure if the check is thorough enough. Any pointers are welcome.

* Adds ImageData support for all image handling functions (#525)

* added ImageData support to YOLO

* adds ImageData support to UNET

* adds ImageData support to StyleTransfer

* adds ImageData support to PoseNet

* adds ImageData support for ImageClassifier/darknet

* adds ImageData support for ImageClassifier/doodlenet

* adds ImageData support for BodyPix and cleans up conditionals

* adds ImageData support to faceApi and cleans up conditionals

* adds ImageData support for imageclassifier and cleans up conditional

* fix image handling for bodypix faceapi and imageclassifier

* update mobilenet imageData support

* check imagedata in yolo

* adds ImageData test to BodyPix

* adds check for canvas (#526)

* Fixes Posenet input arguments and related issues (#529)

* adds this.multiPose() to else{}

* fixes conditional check on object or string

* added kmeans

* added randomSample function

* re-ordered name placement

* fixed weird indentation error

* indentation

* removed optional keyword in docstring

* updates issue and pull request templates (#530)

* Created config class attribute to store instance params

* Adds release script helper (#534)

* adds release helper function

* update name and sep step for release:push

* add release:publish

* Adds release script helper (#535)

* adds release helper function

* update name and sep step for release:push

* add release:publish

* adds tagging to release:publish

* fixes typo

* added test to kmeans (#536)

* docs: add jwilber as a contributor (#537)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add tezzutezzu as a contributor (#538)

* docs: update README.md

* docs: update .all-contributorsrc

* Update Contributing and Github docs (#539)

* updated issue template:

* update PR template

* added new release how to

* docs: add EmmaGoodliffe as a contributor (#545)

* docs: update README.md

* docs: update .all-contributorsrc

* Update tfjs ~v1.2.2 (#544)

* updated tfjs to 1.2.2 and bumped face-api to 0.20.1

* bump tensorflow models

* bump body-pix version

* adds version 2 to feature extractor

* updated to mobilenetv2 api

* updates to posenet 2 api

* always process and resize images in mobilenet

* update test with version 2

* update posenet inputs and test

* fix issue with params in posenet

* updates conditional in p5Utils

* add loadImage test (#549)

* Update npm helper scripts for making releases (#552)

* updating release process scripts and docs

* updated release proces npm scripts and docs

* added release:sync and developement:sync"
"

* set fe to mobilenet v1 - use layers model (#554)

* Adds Docsify to consolidate documentation (#556)

* add docsify-cli as dev dep

* adds docs structure for docsify

* adds bodyPix documentation example

* update bodypix documentation

* adds imageClassifer docs

* added styleguide template and updated docs

* changed name of reference template

* added dev guidelines

* update dev guidelines

* adds posenet docs

* adds tutorials and faq

* add dev:docs npm script

* adds char rnn to docs

* Adds documentation for references to docsify docs (#557)

* add note on all contributors bot

* adds faceapi header img"

* adds design guidelines

* adds design guidelines to sidebar

* adds section for p5 web editor examples

* adds cvae refs

* update bodypix and charrnn docs

* added dcgan docs

* adds pitch detection docs

* adds featureExtractor docs

* adds knn classifier

* update tutorial refs

* adds pix2pix doc

* adds sentiment docs

* adds sketchrnn ref

* adds sound classifier

* adds styletransfer docs

* adds unet docs

* adds word2vec docs

* adds yolo docs

* adds acknowledgements section

* adds acknowledgements section

* Fixes Doodlenet - set new axes and .floor() (#559)

* change split axis to 3 axes

* use floor() instead of round()

* adds options for detection confidence (#561)

* Adds labels to custom image classification model from Teachable Machine output

* Addressing issue #590 part 1 (#592)
>The saved labels from Teachable Machine should be loaded by ml5. I believe this is working for sound classification, but not for images.

Fetching labels from metadata.json when loading models from the new Teachable Machine.

* docs: add EonYang as a contributor (#593)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add lydiajessup as a contributor (#594)

* docs: update README.md

* docs: update .all-contributorsrc

* set alias for sidebar (#598)

* update docsify config

* testing pathways

* adds sublevel 2

* rm sidebar comment

* testing sidebar nested list issue

* relative path is false - using gh-pages

* testing - pls ignore

* testing plugin issue

* drop alias

* added no jekyll to root"

* testing pathway for images

* rm dot from path

* set rel path

* changed images to _media

* use _media path for images

* [Docs] Uses gh-pages to serve docsify docs (#599)

* update docsify config

* testing pathways

* adds sublevel 2

* rm sidebar comment

* testing sidebar nested list issue

* relative path is false - using gh-pages

* testing - pls ignore

* testing plugin issue

* drop alias

* added no jekyll to root"

* testing pathway for images

* rm dot from path

* set rel path

* changed images to _media

* use _media path for images

* adds header nav to docs

* updates alt text and image url

* adds getting started url

* adds reference index

* updates href to reference in nav (#601)

* [face-api] Removes expressions support from face-api in ml5.js (#602)

* rm faceapi expressions support

* rm expression ref in comment

* updates tests for faceapi

* fixes single detection and tests

* Update docs (#603)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds face-api and neural-network placeholder

* adds section for web editor

* set to /tree/development and adds posenet examples

* adds link to src code

* updates references to examples

* sets tree/development as path

* updates face-api and neural net docs

* Revert "Update docs (#603)" (#604)

This reverts commit c6b78d0a7aedc7050a095386ad88300d91a761b2.

* Updates docsify docs (#605)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds face-api and neural-network placeholder

* adds section for web editor

* set to /tree/development and adds posenet examples

* adds link to src code

* updates references to examples

* sets tree/development as path

* updates face-api and neural net docs

* rm neural net class from update-docs branch

* moves bodyPix to support preload() (#610)

* Adds preload support to faceApi  (#611)

* moves bodyPix to support preload()

* adds faceapi to preload

* Updates Docs with latest features (#612)

* adds face-api updates and neural network docs updates

* adds docs for nn functions

* adds save and load docs

* adds neural Network documentation

* fixes backticks

* adds sidebar dividers

* adds docs on model loading and contributors (#616)

* Updates gh templates (#617)

* updates PR template

* updates gh issues template

* updates template

* Generic Neural Network class (#485)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds blob reader for json

* [diy nn] moves tf-vis visualizations to helper class (#583)

* adds tfvis to neuralNetworkVis.js

* adds tfvis to class

* handle text and convert to json (#584)

* allow user more control in the case of classification

* allow user more control in the case of classification (#585)

* Refactoring DIY Neural Network (#591)

* [wip] refactoring data handling and logic separation

* wip adding convertRawToTensor

* adds conversion to tensor

* adds normalization step

* adds train()

* adds predictInternal()

* fixes unique value mapping issue

* comment out .print()

* return all regression results

* adds experimental normalizationOptions object

* quick fix for checking if normalizationOptions exists

* commenting out auto tensor printing

* adds checks for normalizationOptions

* fix obj ref in conditional

* adds .normalizeData() - keeps .normalize() for now

* changes whileTraining function when debug is true

* adds layer options for adding more than 2 layers - experimentalgit add .

* remove .normalize() in favor of .normalizeData()

* adds save() and load()

* adds data.warmUp() to allow training without normalization - handled internally on train

* updates outputs of .predict() and .classify() to be array

* Divide by 0 issue when data is not normalized (#596)

* skipping calculating inputMin and inputMax when data not normalized

* adds check for this.data.meta.isNormalized in predictInternal

* Diy nn code cleanup (#606)

* adds input/output checks to specify number or array of input/output names

* moves model creation to training to compile after input and output units have been calcd

* cleanup code in .trainInternal()

* move vars up to top of function in .trainInternal()

* rm model creation from .createModelFromDataInternal()

* code cleanup and adds comments to .initializeIOUnits()

* code cleanup

* [DIY NN] Adds .saveData() and .loadData() (#607)

* adds saveData function

* updates saveData() with input checks

* adds loadData function

* [Diy NN] Adds .predictMultiple() for batch predictions/classifications (#609)

* adds predictMultiple()

* rm ys.print()

* moves bodypix and faceapi to preload support to match base branch

* [DIY nn] Neural Net Fixes loading pre-trained model (#613)

* adds model_meta.json to savedfiles

* adds loading of model_meta.json - temp fix

* use substring method for url checking

* adds check for if input is JSON

* loadData and text variables mixed up (#615)

* [Diy nn] fix model loading load (Work in progress) (#618)

* adds input object as param to .load()

* adds fetch to retrieve data from urls in .load() based on object

* updates object handler

* fixes check for model.json

* fixes parsing and ordering files

* adds fix for p5 web editor - must use explicit json object to load models

* allows user to add video to .segment() and .segmentWithParts() (#619)

* updates unet docs (#620)

* adds basic test for defaults (#621)

* docs: add EmmaGoodliffe as a contributor (#622)

* docs: update README.md

* docs: update .all-contributorsrc

* adds fix for unet image return for p5 (#625)

* updates webpack dev server to 3.1.11 (#629)

* Fixes vulnerabilities noted by npm (#630)

* run npm audit fix

* bumps commitizen dep

* updated readme and readme updater (#632)

* Update NeuralNetwork docs (#631)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] …
joeyklee added a commit that referenced this pull request Nov 6, 2019
* [neural net fix] Merges neural net fix in release to development branch (#676)

* ml5 release v0.4.0 (#640)

* Updates dev with release and Removes /dist from past commits and future dev (#479)

* Remove unnecessary tf.tidy call

* Implement (err, value) callback style, add test for LSTMGenerator

* Callbackify Mobilenet.classify and Mobilenet.regressor

* Add events dep

* add travis.yml

* remove circleci

* removing test script

* removing package-lock.json

* update yarn.lock

* set up browserstack

* snapshot

* yarn test-travis from .travis.yml

* chmod +x trest-travis

* shebang

* bs launcher

* access key

* add a log

* kick travis

* snapshot

* change browserstack env names

* Added Browserstack badge

* Resolve https://github.com/ml5js/ml5-library/pull/151#discussion_r196475143

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196484426

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196517984

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196518890

* Add license to callCallback, return this from ImageClassifier#loadModel

* Add mocha reporter back, try to make classes thenable

* Update karma configuration

- Fixes a weird bug where tensors were spuriously disposed by tfjs in testing environment due to there being multiple tfjs instances present on the page from the different builds
- Improves stack traces to make debugging easier by disabling minification in karma webpack.
- Only webpack the main package, this means that the test files have to use the global ml5 object.

* Add tests for Word2Vec

- validates that there are no leaked tensors
- validates basic functionality of nearest
- validates that add, subtract and average return things

- Fixes memory leaks in add, subtract, average, and addOrSubtract functions
- Adds a general dispose to the Word2Vec class

* Remove console.log

* Add an easy way to run test suite once

* Handle rejected promises

* fix eslint errors in lstm and w2v

* Support for callbacks in word2vec and fix tests.
Moved the YOLO weights to the examples repo.
Fix eslint in some files

* Add tests to imageclassifier
fix video issue in imageclassifier

* - Add test for YOLO
- Add test for Imageclassifier
- Resize img if necessary in utils

* - Add license to test files
- Style transfer test
- remove .test file in posenet

* - Update poseNet version to 0.1.3
- Add posnet test

* test commit

* - Fix issues in imageclassifier

* - update pitch detection to #158
- fix event emmiter in posenet
- fix constructor in yolo
- async video util

* temp fix to test leak

* Fix posenet on video ready

* refactor pix2pix to support promises

* support promise when create a new styletransfer method

* bump to version 0.1.0

* bump to 0.1.1

* update readme

* clarification and formatting changes to ensure steps are easy to follow

* ImageClassifier: predict: handle unsupported input

* add proper attributions for models

* Update index.js

* fix eslint for links

* Update index.js

* Update index.js

* Update index.js

* Update README.md (#207)

* Support canvas elements and canvases from p5.js in ImageClassifier (#206)

* Bugfix: PitchDetection returning the wrong pitch (#187)

When converted to the current syntax, the operation was the wrong way around.
See https://github.com/marl/crepe/blob/gh-pages/crepe.js#L141 for the original.

*  fix(addImage, classify, predict): now featureExtractor works with images (it was working only with video) (#191)

* fix(addImage, classify, predict): now featureExtractor works with images (it was working only with v

* fix(addImage, classify, predict): now featureExtractor works with images (it was working only with video

* added darknet reference and darknet tiny classifiers (#201)

* added darknet reference and darknet tiny classifiers

* fixed linting stuff

* edits..

* edits2.0

* clean comments

* SketchRNN  (#189)

* init sketchrnn

* strokes

* add models

* stylefixes

* some more bugfixes

* comments

* update dependencies

* Load and save a custom model created with FeatureExtractor  (#219)

* load and save feature extractor model

* update learning rate

* add string an callback

* KNN Classifier (#171)

* added KNNClassifier class, and getFeatures method in ImageClassifier

* added knnclassifer.loaddataset, and savedataset from/as json file

* added featureExtractor.infer() to take in p5 videoelement

* support callback, and add 'label' for each class

* added getClassExampleCountByLabel, support label when save/load dataset

* update function naming, predictClass to classify, classLabel to label

* updates to way of handling strokes (#228)

* Fixing up SketchRNN (#232)

* Code of Conduct (#225)

Just noticing we don't have a code of conduct so adding to the main library repo (we can discuss whether we should put this across all repos -- probably, yes?) This is the [Contributor Covenant](https://www.contributor-covenant.org/).

* saving feature extrctor model with ml5Specs (#233)

* Stateful LSTM (#234)

* allow passing in of lstm state c and h. return more lstm info (c, h, probabilities)

* fix LSTM Stateful ness and other tweaks

* LSTM probabilities class property

* remove weird ind<100 check

* remove unnessecary initCells

* add LSTM methods state getter, setter and reset

* rename to charRNN and update stateful to match discussed api

* add callback to feed

* fix bug in predict

* adding new probabilites object

* new build

* Additional arguments option for SketchRNN (#237)

* Fixing up SketchRNN

* arguments fix for SketchRNN interactive

* adding build

* update version

* KNN update (#256)

* let knn.addExample() and classify() accept a plain array as input

* simplify and shorten knn api function names

* rename a variable in clearlabel()

* knn.save checks if file name has .json

* remove timestamp in the filename for .save()

* update package-loack to fix travis test on node 10

* update yarn lock

* fix - adds callback support for single functions in posenet re: #244 (#254)

* fix(adds callback support for single functions in posenet https://github.com/ml5js/ml5-library/issue

adds callback support for single functions in posenet
https://github.com/ml5js/ml5-library/issues/244

https://github.com/ml5js/ml5-library/issues/244

* rm package-lock.json

* fix(PoseNet/index.js): Add support for PoseNet `.singlePose()` & `.multiPose()` callback #244

Add support for PoseNet `.singlePose()` & `.multiPose()` callback #244 & updated callback error
handling

#244

* rm error check when returning callback in posenet singlePose & multiPose

* fixed indentation

* temp rm cb function

* added cb function back in

* added yarn and package lock

* added lock files from ml5 master

* updating to version 0.2.0 (#264)

* V0.2.1 Tagged Release (#267)

* updating to version 0.2.0

* run build process and built lib

* Release v0.2.1 - npm publish issue

* added github issue template (#275)

* add different ways of including ml5js on the HTML header (#268)

(We will follow up and update the version to the latest which is v0.2.1)

* updated readme specifying versions for lib (#282)

* fix: Use Blobs to save files of larger sizes (#271)

* fix: Use Blobs to save files of larger sizes

fix #270

* use saveBlob() to save knn models, delete io.saveFile(), because saveBlob does the same thing and can handle big files

* Show the version number of the library. (#283)

Adds the library version from the package.json for each build.

* fix issue that server fails to listen dev folder (#287)

*     feat(KNNClassifier): Add loadData() that enables user to load dat… (#279)

*     feat(KNNClassifier): Add loadData() that enables user to load dataset from raw data instead of file

    With load(), file path needs to be provided to load dataset. This means that JSON file that has
    dataset needs to be located on the server. You can give a way to download dataset using save(), but
    you cannot give a way to upload that file and load the dataset. This commit adds loadData() that
    enables user to load dataset from raw data. By combining this method and <INPUT type="file"> tag,
    you can give a way for user to upload dataset file.

* Merge load(path, callback) and loadData(data, callback) into load(pathOrJson, callback).

* Merge load() and loadData() in a cleaner way without using Symbol.

Ref. https://github.com/ml5js/ml5-library/pull/279#issuecomment-465890231

* feat(src/PoseNet/index.js): Ability to access parts of pose by name.

Now can simply do pose.nose.x or pose.nose.confidence. Using original PoseNet naming scheme (i.e.
rightShoulder).

re #245

* Update ImageClassifier and FeatureExtractor to return [{label, confidence}] (#292)

* change imageClassifier.predict() to classify(), keep predict until later version

* update imageclassifier.classify results to [{label: .., confidence: ..}]

* update featureExtractor regressor return {value: 0-1}

* update featureextractor.classify to return [{label, confidence}]

* Support p5 preload with ml5 functions (#288)

* support p5 preload with ml5 functions

* make withPreload object clean

* an automatic script to initialize experiments dir (#295)

* an alternative way to test with experiments dir

* revert change for webpack.dev

* Change experiments to manual-test

* rename folder to manual-test

* update .gitignore

* patch style transfer for non-square and canvas-derived inputs (#311)

* fix preload bugs (#305)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318) (#319)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Add tests to CharRNN (#307) (#320)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Updated CONTRIBUTING docs and README (#322)

* updated readme specifying versions for lib

* added documentation to contributing.md

* added updates

* added label and confidence as output for yolo results (#316)

* added label and confidence as output

* updates yolo test to use label instead of className

* Increase test timeout (#321)

* added label and confidence as output

* updates yolo test to use label instead of className

* set jasmine.DEFAULT_TIMEOUT_INTERVAL to 60000ms

* Merges in https://github.com/ml5js/ml5-library/pull/313 via master using deprecating-master branch (#323)

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* added v0.2.2 to package.json in anticipation of new release

* Fixing an issue with prettier and eslint (#324)

* Fixing an issue with prettier and eslint

There is a conflict between arrow syntax rules in airbnb eslint
configuration and the way default prettier works in VSCode. These
additional setting should help anyone using VSCode with autoformat +
prettier to not run into problems building the library.

I am open to better ways of handling this of course!

(Note the changes in ImageClassifier are trivial and just testing).

* adding eslint-config-prettier as dev dependency

* trivial change to run tests again

* Adjust charrnn test option length (#326)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* Adjust charrnn length - comment 2nd test for now (#329)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* comment out second charRNN test for now to allow merging PRs

* Forcing magenta dependency to 0.1.2 (#328)

The SketchRNN example doesn't work with more recent magenta (0.1.4)
probably due to us lagging behind in versions of tf.js?

* SketchRNN creation function should be lowercase (#325)

This is related to the discussion in #297.

* added v0.2.2 to package.json in anticipation of new release (#330)

hooray adding release v0.2.2

* Release v0.2.2 πŸŽ‰ (#331)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318) (#319)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Add tests to CharRNN (#307) (#320)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Updated CONTRIBUTING docs and README (#322)

* updated readme specifying versions for lib

* added documentation to contributing.md

* added updates

* added label and confidence as output for yolo results (#316)

* added label and confidence as output

* updates yolo test to use label instead of className

* Increase test timeout (#321)

* added label and confidence as output

* updates yolo test to use label instead of className

* set jasmine.DEFAULT_TIMEOUT_INTERVAL to 60000ms

* Merges in https://github.com/ml5js/ml5-library/pull/313 via master using deprecating-master branch (#323)

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* added v0.2.2 to package.json in anticipation of new release

* Fixing an issue with prettier and eslint (#324)

* Fixing an issue with prettier and eslint

There is a conflict between arrow syntax rules in airbnb eslint
configuration and the way default prettier works in VSCode. These
additional setting should help anyone using VSCode with autoformat +
prettier to not run into problems building the library.

I am open to better ways of handling this of course!

(Note the changes in ImageClassifier are trivial and just testing).

* adding eslint-config-prettier as dev dependency

* trivial change to run tests again

* Adjust charrnn test option length (#326)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* Adjust charrnn length - comment 2nd test for now (#329)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* comment out second charRNN test for now to allow merging PRs

* Forcing magenta dependency to 0.1.2 (#328)

The SketchRNN example doesn't work with more recent magenta (0.1.4)
probably due to us lagging behind in versions of tf.js?

* SketchRNN creation function should be lowercase (#325)

This is related to the discussion in #297.

* added v0.2.2 to package.json in anticipation of new release (#330)

hooray adding release v0.2.2

* added latest v0.2.2

* Some minor README adjustments (#334)

* I am de-emphasizing `@latest` as in my experience this can lead to confusion.
* I don't think my name needs to be referenced!

* V0.2.3 (#341)

* ran npm install, added new package json version, and built dist

* updated package lock

* updated package lock and ran build

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* 🌈 New Release: ml5.js v0.3.0 πŸŽ‰ (#386)

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* 🌈 New Release: ml5.js v0.3.0 πŸŽ‰ (#386)

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* added ml5.imageClassifier(doodleNet)

* doodlenet: transfer input img to black white image

* warm up model, comments

* added ml5.soundClassifier(speech-command)

* Revert "added ml5.soundClassifier(speech-command)"

This reverts commit 317c146450d65aa1ad9f1ef67bf912a792b0d8a0.

* update darknet link to use jsdelivr instead (#391)

* changed cdn link to doodlenet model (#390)

* adding ml5.soundClassifier(speech-commands) (#389)

* added ml5.soundClassifier(speech-commands)

* not require fs node module for testing

* Reuse getTopKClasses in doodlenet, darkneet and speech-commands

* fix: getTopKClasses return className and probability

* DCGAN refactor + preload (#398)

* restructure dcgan to accept path to manifest.json

* added check for absolute or relative url path

* rm console.log

* added DEFAULT if modelPath is null or undefined in jsonLoader

* use async/await in loadModel

* add dcgan to preload

* fixed breaking change

* updated index

* added modelReady prop

* shows preload working without additional async call to load manifest

* allows for preload

* added a bird image for testing purpose

* update bird image link from ml5-library for testing (#403)

* renaming model names to ml5.soundClassifier(SpeechCommands18w) (#404)

* ml5.featureExtractor loading models from the new teachable machine (#395)

* load model from new teachable machine

* featureExtractor use jointModel

* only train custom model but save the joint model

* Bodypix (#400)

* added BodyPix placeholder

* "@tensorflow-models/body-pix": "1.0.1",

* initial commit placeholder for bodypix

* added bodypix as bp and loadModel()

* added segment and segmentInternal

* change promise to async

* return result maskPerson and maskBackground

* adds part segmentation

* rm log

* add segmentation as result.raw

* add function to create bodyParts spec object

* added test

* added optional segmentationOptions param to segment() and segmentWithParts()

* added package.lock

* updated DEFAULTS to BODYPIX_DEFAULTS

* code cleanup

* added comments

* added jsdoc comments

* add check p5 color()

* updated bodyPartSpec image color handling for p5

* changed palette spec to object

* ml5.imageClassifier() loads pre-trained custom model (#408)

* imageClassifier load a model from url

* added options to local model from local files

* supports imageClassifier.classify(video)

* ml5.soundClassifier(url)

* docs: add shiffman as a contributor (#410)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: add cvalenzuela as a contributor (#414)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: update README.md

* docs: update .all-contributorsrc

* rm files to start fresh (#417)

* docs: add shiffman as a contributor (#418)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: add cvalenzuela as a contributor (#419)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add yining1023 as a contributor (#421)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add handav as a contributor (#423)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add joeyklee as a contributor (#424)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AshleyJaneLewis as a contributor (#425)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add ellennickles as a contributor (#426)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add itayniv as a contributor (#427)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nikitahuggins as a contributor (#428)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AbolTaabol as a contributor (#429)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AidanNelson as a contributor (#430)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add WenheLI as a contributor (#431)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add dariusk as a contributor (#432)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Derek-Wds as a contributor (#433)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add garym140 as a contributor (#434)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add genekogan as a contributor (#435)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add hhayley as a contributor (#436)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add lisajamhoury as a contributor (#437)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add matamalaortiz as a contributor (#438)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add mayaman as a contributor (#439)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add MimiOnuoha as a contributor (#440)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add NHibiki as a contributor (#441)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add oveddan as a contributor (#442)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add stephkoltun as a contributor (#443)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add viztopia as a contributor (#444)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add wenqili as a contributor (#446)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add brondle as a contributor (#447)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Jonarod as a contributor (#448)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add JazzTap as a contributor (#449)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add zaidalyafeai as a contributor (#450)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AlcaDesign as a contributor (#451)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add memo as a contributor (#452)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add TheHidden1 as a contributor (#453)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add meiamsome as a contributor (#454)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add marshalhayes as a contributor (#455)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add reiinakano as a contributor (#456)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nsthorat as a contributor (#457)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add irealva as a contributor (#458)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add vndrewlee as a contributor (#459)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add fjcamillo as a contributor (#460)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add achimkoh as a contributor (#461)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add hx2A as a contributor (#462)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add champierre as a contributor (#465)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add micuat as a contributor (#466)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add montoyamoraga as a contributor (#467)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add b2renger as a contributor (#468)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add adityaas26 as a contributor (#469)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add okuna291 as a contributor (#470)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add xujenna as a contributor (#471)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nicoleflloyd as a contributor (#472)

* docs: update README.md

* docs: update .all-contributorsrc

* updated package-lock

* pass vector to dcgan compute

* Adds face-api.js to ml5.js (#482)

* initial commit - add classifyExpressions

* added classifyExpressionsMultiple() and classifyExpressionsSingle()

* remove modelPath requirement in favor of defaults

* updated index with links to tiny landmarks

* adds option to add relative path or absolute url

* updated url checking for models

* changed function names

* updated functions to .detect() and .detectSingle()

* check undefined, otherwise assign

* added resize function to results by default

* code cleanup

* added test to faceapi

* added tests

* added face parts to result.parts

* code cleanup

* changed options from withFaceX to withX

* code cleanup

* code cleanup

* fixed conditional to include face .withFaceDescriptor(s)

* docs: add jepster-dk as a contributor (#489)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add xanderjakeq as a contributor (#490)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add catarak as a contributor (#491)

* docs: update README.md

* docs: update .all-contributorsrc

* [WIP]Change p5Utils into a class

* dcgan: use random vector if no latent vector is given

* dcgan check if arg is array

* updated code of conduct with adapted p5 community statement (#492)

* updated code of conduct with adapted p5 community statement

* Update CODE_OF_CONDUCT.md

rm coding train from donation // todo - add other relevant orgs next

Co-Authored-By: Daniel Shiffman <daniel.shiffman@gmail.com>

* updated enforcement with ashley and dan

* rm redundant all contributors badge (#497)

* Readme updates (#505)

* added package.lock

* updates links to latest website

* rm 'with no external deps'

* set correct url to image (#507)

* docs: add dcbriccetti as a contributor (#506)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Sblob1 as a contributor (#513)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: update README.md

* docs: update .all-contributorsrc

* Fu

* add command line arguments for testing single model

* Handling p5 Image in PoseNet singlePose

I have changed singlePose function in order to handle p5 Image types. 

However I'm not sure if the check is thorough enough. Any pointers are welcome.

* Adds ImageData support for all image handling functions (#525)

* added ImageData support to YOLO

* adds ImageData support to UNET

* adds ImageData support to StyleTransfer

* adds ImageData support to PoseNet

* adds ImageData support for ImageClassifier/darknet

* adds ImageData support for ImageClassifier/doodlenet

* adds ImageData support for BodyPix and cleans up conditionals

* adds ImageData support to faceApi and cleans up conditionals

* adds ImageData support for imageclassifier and cleans up conditional

* fix image handling for bodypix faceapi and imageclassifier

* update mobilenet imageData support

* check imagedata in yolo

* adds ImageData test to BodyPix

* adds check for canvas (#526)

* Fixes Posenet input arguments and related issues (#529)

* adds this.multiPose() to else{}

* fixes conditional check on object or string

* added kmeans

* added randomSample function

* re-ordered name placement

* fixed weird indentation error

* indentation

* removed optional keyword in docstring

* updates issue and pull request templates (#530)

* Created config class attribute to store instance params

* Adds release script helper (#534)

* adds release helper function

* update name and sep step for release:push

* add release:publish

* Adds release script helper (#535)

* adds release helper function

* update name and sep step for release:push

* add release:publish

* adds tagging to release:publish

* fixes typo

* added test to kmeans (#536)

* docs: add jwilber as a contributor (#537)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add tezzutezzu as a contributor (#538)

* docs: update README.md

* docs: update .all-contributorsrc

* Update Contributing and Github docs (#539)

* updated issue template:

* update PR template

* added new release how to

* docs: add EmmaGoodliffe as a contributor (#545)

* docs: update README.md

* docs: update .all-contributorsrc

* Update tfjs ~v1.2.2 (#544)

* updated tfjs to 1.2.2 and bumped face-api to 0.20.1

* bump tensorflow models

* bump body-pix version

* adds version 2 to feature extractor

* updated to mobilenetv2 api

* updates to posenet 2 api

* always process and resize images in mobilenet

* update test with version 2

* update posenet inputs and test

* fix issue with params in posenet

* updates conditional in p5Utils

* add loadImage test (#549)

* Update npm helper scripts for making releases (#552)

* updating release process scripts and docs

* updated release proces npm scripts and docs

* added release:sync and developement:sync"
"

* set fe to mobilenet v1 - use layers model (#554)

* Adds Docsify to consolidate documentation (#556)

* add docsify-cli as dev dep

* adds docs structure for docsify

* adds bodyPix documentation example

* update bodypix documentation

* adds imageClassifer docs

* added styleguide template and updated docs

* changed name of reference template

* added dev guidelines

* update dev guidelines

* adds posenet docs

* adds tutorials and faq

* add dev:docs npm script

* adds char rnn to docs

* Adds documentation for references to docsify docs (#557)

* add note on all contributors bot

* adds faceapi header img"

* adds design guidelines

* adds design guidelines to sidebar

* adds section for p5 web editor examples

* adds cvae refs

* update bodypix and charrnn docs

* added dcgan docs

* adds pitch detection docs

* adds featureExtractor docs

* adds knn classifier

* update tutorial refs

* adds pix2pix doc

* adds sentiment docs

* adds sketchrnn ref

* adds sound classifier

* adds styletransfer docs

* adds unet docs

* adds word2vec docs

* adds yolo docs

* adds acknowledgements section

* adds acknowledgements section

* Fixes Doodlenet - set new axes and .floor() (#559)

* change split axis to 3 axes

* use floor() instead of round()

* adds options for detection confidence (#561)

* Adds labels to custom image classification model from Teachable Machine output

* Addressing issue #590 part 1 (#592)
>The saved labels from Teachable Machine should be loaded by ml5. I believe this is working for sound classification, but not for images.

Fetching labels from metadata.json when loading models from the new Teachable Machine.

* docs: add EonYang as a contributor (#593)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add lydiajessup as a contributor (#594)

* docs: update README.md

* docs: update .all-contributorsrc

* set alias for sidebar (#598)

* update docsify config

* testing pathways

* adds sublevel 2

* rm sidebar comment

* testing sidebar nested list issue

* relative path is false - using gh-pages

* testing - pls ignore

* testing plugin issue

* drop alias

* added no jekyll to root"

* testing pathway for images

* rm dot from path

* set rel path

* changed images to _media

* use _media path for images

* [Docs] Uses gh-pages to serve docsify docs (#599)

* update docsify config

* testing pathways

* adds sublevel 2

* rm sidebar comment

* testing sidebar nested list issue

* relative path is false - using gh-pages

* testing - pls ignore

* testing plugin issue

* drop alias

* added no jekyll to root"

* testing pathway for images

* rm dot from path

* set rel path

* changed images to _media

* use _media path for images

* adds header nav to docs

* updates alt text and image url

* adds getting started url

* adds reference index

* updates href to reference in nav (#601)

* [face-api] Removes expressions support from face-api in ml5.js (#602)

* rm faceapi expressions support

* rm expression ref in comment

* updates tests for faceapi

* fixes single detection and tests

* Update docs (#603)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds face-api and neural-network placeholder

* adds section for web editor

* set to /tree/development and adds posenet examples

* adds link to src code

* updates references to examples

* sets tree/development as path

* updates face-api and neural net docs

* Revert "Update docs (#603)" (#604)

This reverts commit c6b78d0a7aedc7050a095386ad88300d91a761b2.

* Updates docsify docs (#605)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds face-api and neural-network placeholder

* adds section for web editor

* set to /tree/development and adds posenet examples

* adds link to src code

* updates references to examples

* sets tree/development as path

* updates face-api and neural net docs

* rm neural net class from update-docs branch

* moves bodyPix to support preload() (#610)

* Adds preload support to faceApi  (#611)

* moves bodyPix to support preload()

* adds faceapi to preload

* Updates Docs with latest features (#612)

* adds face-api updates and neural network docs updates

* adds docs for nn functions

* adds save and load docs

* adds neural Network documentation

* fixes backticks

* adds sidebar dividers

* adds docs on model loading and contributors (#616)

* Updates gh templates (#617)

* updates PR template

* updates gh issues template

* updates template

* Generic Neural Network class (#485)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds blob reader for json

* [diy nn] moves tf-vis visualizations to helper class (#583)

* adds tfvis to neuralNetworkVis.js

* adds tfvis to class

* handle text and convert to json (#584)

* allow user more control in the case of classification

* allow user more control in the case of classification (#585)

* Refactoring DIY Neural Network (#591)

* [wip] refactoring data handling and logic separation

* wip adding convertRawToTensor

* adds conversion to tensor

* adds normalization step

* adds train()

* adds predictInternal()

* fixes unique value mapping issue

* comment out .print()

* return all regression results

* adds experimental normalizationOptions object

* quick fix for checking if normalizationOptions exists

* commenting out auto tensor printing

* adds checks for normalizationOptions

* fix obj ref in conditional

* adds .normalizeData() - keeps .normalize() for now

* changes whileTraining function when debug is true

* adds layer options for adding more than 2 layers - experimentalgit add .

* remove .normalize() in favor of .normalizeData()

* adds save() and load()

* adds data.warmUp() to allow training without normalization - handled internally on train

* updates outputs of .predict() and .classify() to be array

* Divide by 0 issue when data is not normalized (#596)

* skipping calculating inputMin and inputMax when data not normalized

* adds check for this.data.meta.isNormalized in predictInternal

* Diy nn code cleanup (#606)

* adds input/output checks to specify number or array of input/output names

* moves model creation to training to compile after input and output units have been calcd

* cleanup code in .trainInternal()

* move vars up to top of function in .trainInternal()

* rm model creation from .createModelFromDataInternal()

* code cleanup and adds comments to .initializeIOUnits()

* code cleanup

* [DIY NN] Adds .saveData() and .loadData() (#607)

* adds saveData function

* updates saveData() with input checks

* adds loadData function

* [Diy NN] Adds .predictMultiple() for batch predictions/classifications (#609)

* adds predictMultiple()

* rm ys.print()

* moves bodypix and faceapi to preload support to match base branch

* [DIY nn] Neural Net Fixes loading pre-trained model (#613)

* adds model_meta.json to savedfiles

* adds loading of model_meta.json - temp fix

* use substring method for url checking

* adds check for if input is JSON

* loadData and text variables mixed up (#615)

* [Diy nn] fix model loading load (Work in progress) (#618)

* adds input object as param to .load()

* adds fetch to retrieve data from urls in .load() based on object

* updates object handler

* fixes check for model.json

* fixes parsing and ordering files

* adds fix for p5 web editor - must use explicit json object to load models

* allows user to add video to .segment() and .segmentWithParts() (#619)

* updates unet docs (#620)

* adds basic test for defaults (#621)

* docs: add EmmaGoodliffe as a contributor (#622)

* docs: update README.md

* docs: update .all-contributorsrc

* adds fix for unet image return for p5 (#625)

* updates webpack dev server to 3.1.11 (#629)

* Fixes vulnerabilities noted by npm (#630)

* run npm audit fix

* bumps commitizen dep

* updated readme and readme updater (#632)

* Update NeuralNetwork docs (#631)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extract…
joeyklee added a commit that referenced this pull request Nov 14, 2019
* [v0.4.2] v0.4.2 (#685)

* [neural net fix] Merges neural net fix in release to development branch (#676)

* ml5 release v0.4.0 (#640)

* Updates dev with release and Removes /dist from past commits and future dev (#479)

* Remove unnecessary tf.tidy call

* Implement (err, value) callback style, add test for LSTMGenerator

* Callbackify Mobilenet.classify and Mobilenet.regressor

* Add events dep

* add travis.yml

* remove circleci

* removing test script

* removing package-lock.json

* update yarn.lock

* set up browserstack

* snapshot

* yarn test-travis from .travis.yml

* chmod +x trest-travis

* shebang

* bs launcher

* access key

* add a log

* kick travis

* snapshot

* change browserstack env names

* Added Browserstack badge

* Resolve https://github.com/ml5js/ml5-library/pull/151#discussion_r196475143

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196484426

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196517984

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196518890

* Add license to callCallback, return this from ImageClassifier#loadModel

* Add mocha reporter back, try to make classes thenable

* Update karma configuration

- Fixes a weird bug where tensors were spuriously disposed by tfjs in testing environment due to there being multiple tfjs instances present on the page from the different builds
- Improves stack traces to make debugging easier by disabling minification in karma webpack.
- Only webpack the main package, this means that the test files have to use the global ml5 object.

* Add tests for Word2Vec

- validates that there are no leaked tensors
- validates basic functionality of nearest
- validates that add, subtract and average return things

- Fixes memory leaks in add, subtract, average, and addOrSubtract functions
- Adds a general dispose to the Word2Vec class

* Remove console.log

* Add an easy way to run test suite once

* Handle rejected promises

* fix eslint errors in lstm and w2v

* Support for callbacks in word2vec and fix tests.
Moved the YOLO weights to the examples repo.
Fix eslint in some files

* Add tests to imageclassifier
fix video issue in imageclassifier

* - Add test for YOLO
- Add test for Imageclassifier
- Resize img if necessary in utils

* - Add license to test files
- Style transfer test
- remove .test file in posenet

* - Update poseNet version to 0.1.3
- Add posnet test

* test commit

* - Fix issues in imageclassifier

* - update pitch detection to #158
- fix event emmiter in posenet
- fix constructor in yolo
- async video util

* temp fix to test leak

* Fix posenet on video ready

* refactor pix2pix to support promises

* support promise when create a new styletransfer method

* bump to version 0.1.0

* bump to 0.1.1

* update readme

* clarification and formatting changes to ensure steps are easy to follow

* ImageClassifier: predict: handle unsupported input

* add proper attributions for models

* Update index.js

* fix eslint for links

* Update index.js

* Update index.js

* Update index.js

* Update README.md (#207)

* Support canvas elements and canvases from p5.js in ImageClassifier (#206)

* Bugfix: PitchDetection returning the wrong pitch (#187)

When converted to the current syntax, the operation was the wrong way around.
See https://github.com/marl/crepe/blob/gh-pages/crepe.js#L141 for the original.

*  fix(addImage, classify, predict): now featureExtractor works with images (it was working only with video) (#191)

* fix(addImage, classify, predict): now featureExtractor works with images (it was working only with v

* fix(addImage, classify, predict): now featureExtractor works with images (it was working only with video

* added darknet reference and darknet tiny classifiers (#201)

* added darknet reference and darknet tiny classifiers

* fixed linting stuff

* edits..

* edits2.0

* clean comments

* SketchRNN  (#189)

* init sketchrnn

* strokes

* add models

* stylefixes

* some more bugfixes

* comments

* update dependencies

* Load and save a custom model created with FeatureExtractor  (#219)

* load and save feature extractor model

* update learning rate

* add string an callback

* KNN Classifier (#171)

* added KNNClassifier class, and getFeatures method in ImageClassifier

* added knnclassifer.loaddataset, and savedataset from/as json file

* added featureExtractor.infer() to take in p5 videoelement

* support callback, and add 'label' for each class

* added getClassExampleCountByLabel, support label when save/load dataset

* update function naming, predictClass to classify, classLabel to label

* updates to way of handling strokes (#228)

* Fixing up SketchRNN (#232)

* Code of Conduct (#225)

Just noticing we don't have a code of conduct so adding to the main library repo (we can discuss whether we should put this across all repos -- probably, yes?) This is the [Contributor Covenant](https://www.contributor-covenant.org/).

* saving feature extrctor model with ml5Specs (#233)

* Stateful LSTM (#234)

* allow passing in of lstm state c and h. return more lstm info (c, h, probabilities)

* fix LSTM Stateful ness and other tweaks

* LSTM probabilities class property

* remove weird ind<100 check

* remove unnessecary initCells

* add LSTM methods state getter, setter and reset

* rename to charRNN and update stateful to match discussed api

* add callback to feed

* fix bug in predict

* adding new probabilites object

* new build

* Additional arguments option for SketchRNN (#237)

* Fixing up SketchRNN

* arguments fix for SketchRNN interactive

* adding build

* update version

* KNN update (#256)

* let knn.addExample() and classify() accept a plain array as input

* simplify and shorten knn api function names

* rename a variable in clearlabel()

* knn.save checks if file name has .json

* remove timestamp in the filename for .save()

* update package-loack to fix travis test on node 10

* update yarn lock

* fix - adds callback support for single functions in posenet re: #244 (#254)

* fix(adds callback support for single functions in posenet https://github.com/ml5js/ml5-library/issue

adds callback support for single functions in posenet
https://github.com/ml5js/ml5-library/issues/244

https://github.com/ml5js/ml5-library/issues/244

* rm package-lock.json

* fix(PoseNet/index.js): Add support for PoseNet `.singlePose()` & `.multiPose()` callback #244

Add support for PoseNet `.singlePose()` & `.multiPose()` callback #244 & updated callback error
handling

#244

* rm error check when returning callback in posenet singlePose & multiPose

* fixed indentation

* temp rm cb function

* added cb function back in

* added yarn and package lock

* added lock files from ml5 master

* updating to version 0.2.0 (#264)

* V0.2.1 Tagged Release (#267)

* updating to version 0.2.0

* run build process and built lib

* Release v0.2.1 - npm publish issue

* added github issue template (#275)

* add different ways of including ml5js on the HTML header (#268)

(We will follow up and update the version to the latest which is v0.2.1)

* updated readme specifying versions for lib (#282)

* fix: Use Blobs to save files of larger sizes (#271)

* fix: Use Blobs to save files of larger sizes

fix #270

* use saveBlob() to save knn models, delete io.saveFile(), because saveBlob does the same thing and can handle big files

* Show the version number of the library. (#283)

Adds the library version from the package.json for each build.

* fix issue that server fails to listen dev folder (#287)

*     feat(KNNClassifier): Add loadData() that enables user to load dat… (#279)

*     feat(KNNClassifier): Add loadData() that enables user to load dataset from raw data instead of file

    With load(), file path needs to be provided to load dataset. This means that JSON file that has
    dataset needs to be located on the server. You can give a way to download dataset using save(), but
    you cannot give a way to upload that file and load the dataset. This commit adds loadData() that
    enables user to load dataset from raw data. By combining this method and <INPUT type="file"> tag,
    you can give a way for user to upload dataset file.

* Merge load(path, callback) and loadData(data, callback) into load(pathOrJson, callback).

* Merge load() and loadData() in a cleaner way without using Symbol.

Ref. https://github.com/ml5js/ml5-library/pull/279#issuecomment-465890231

* feat(src/PoseNet/index.js): Ability to access parts of pose by name.

Now can simply do pose.nose.x or pose.nose.confidence. Using original PoseNet naming scheme (i.e.
rightShoulder).

re #245

* Update ImageClassifier and FeatureExtractor to return [{label, confidence}] (#292)

* change imageClassifier.predict() to classify(), keep predict until later version

* update imageclassifier.classify results to [{label: .., confidence: ..}]

* update featureExtractor regressor return {value: 0-1}

* update featureextractor.classify to return [{label, confidence}]

* Support p5 preload with ml5 functions (#288)

* support p5 preload with ml5 functions

* make withPreload object clean

* an automatic script to initialize experiments dir (#295)

* an alternative way to test with experiments dir

* revert change for webpack.dev

* Change experiments to manual-test

* rename folder to manual-test

* update .gitignore

* patch style transfer for non-square and canvas-derived inputs (#311)

* fix preload bugs (#305)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318) (#319)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Add tests to CharRNN (#307) (#320)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Updated CONTRIBUTING docs and README (#322)

* updated readme specifying versions for lib

* added documentation to contributing.md

* added updates

* added label and confidence as output for yolo results (#316)

* added label and confidence as output

* updates yolo test to use label instead of className

* Increase test timeout (#321)

* added label and confidence as output

* updates yolo test to use label instead of className

* set jasmine.DEFAULT_TIMEOUT_INTERVAL to 60000ms

* Merges in https://github.com/ml5js/ml5-library/pull/313 via master using deprecating-master branch (#323)

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* added v0.2.2 to package.json in anticipation of new release

* Fixing an issue with prettier and eslint (#324)

* Fixing an issue with prettier and eslint

There is a conflict between arrow syntax rules in airbnb eslint
configuration and the way default prettier works in VSCode. These
additional setting should help anyone using VSCode with autoformat +
prettier to not run into problems building the library.

I am open to better ways of handling this of course!

(Note the changes in ImageClassifier are trivial and just testing).

* adding eslint-config-prettier as dev dependency

* trivial change to run tests again

* Adjust charrnn test option length (#326)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* Adjust charrnn length - comment 2nd test for now (#329)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* comment out second charRNN test for now to allow merging PRs

* Forcing magenta dependency to 0.1.2 (#328)

The SketchRNN example doesn't work with more recent magenta (0.1.4)
probably due to us lagging behind in versions of tf.js?

* SketchRNN creation function should be lowercase (#325)

This is related to the discussion in #297.

* added v0.2.2 to package.json in anticipation of new release (#330)

hooray adding release v0.2.2

* Release v0.2.2 πŸŽ‰ (#331)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318) (#319)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Add tests to CharRNN (#307) (#320)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Updated CONTRIBUTING docs and README (#322)

* updated readme specifying versions for lib

* added documentation to contributing.md

* added updates

* added label and confidence as output for yolo results (#316)

* added label and confidence as output

* updates yolo test to use label instead of className

* Increase test timeout (#321)

* added label and confidence as output

* updates yolo test to use label instead of className

* set jasmine.DEFAULT_TIMEOUT_INTERVAL to 60000ms

* Merges in https://github.com/ml5js/ml5-library/pull/313 via master using deprecating-master branch (#323)

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* added v0.2.2 to package.json in anticipation of new release

* Fixing an issue with prettier and eslint (#324)

* Fixing an issue with prettier and eslint

There is a conflict between arrow syntax rules in airbnb eslint
configuration and the way default prettier works in VSCode. These
additional setting should help anyone using VSCode with autoformat +
prettier to not run into problems building the library.

I am open to better ways of handling this of course!

(Note the changes in ImageClassifier are trivial and just testing).

* adding eslint-config-prettier as dev dependency

* trivial change to run tests again

* Adjust charrnn test option length (#326)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* Adjust charrnn length - comment 2nd test for now (#329)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* comment out second charRNN test for now to allow merging PRs

* Forcing magenta dependency to 0.1.2 (#328)

The SketchRNN example doesn't work with more recent magenta (0.1.4)
probably due to us lagging behind in versions of tf.js?

* SketchRNN creation function should be lowercase (#325)

This is related to the discussion in #297.

* added v0.2.2 to package.json in anticipation of new release (#330)

hooray adding release v0.2.2

* added latest v0.2.2

* Some minor README adjustments (#334)

* I am de-emphasizing `@latest` as in my experience this can lead to confusion.
* I don't think my name needs to be referenced!

* V0.2.3 (#341)

* ran npm install, added new package json version, and built dist

* updated package lock

* updated package lock and ran build

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* 🌈 New Release: ml5.js v0.3.0 πŸŽ‰ (#386)

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* 🌈 New Release: ml5.js v0.3.0 πŸŽ‰ (#386)

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* added ml5.imageClassifier(doodleNet)

* doodlenet: transfer input img to black white image

* warm up model, comments

* added ml5.soundClassifier(speech-command)

* Revert "added ml5.soundClassifier(speech-command)"

This reverts commit 317c146450d65aa1ad9f1ef67bf912a792b0d8a0.

* update darknet link to use jsdelivr instead (#391)

* changed cdn link to doodlenet model (#390)

* adding ml5.soundClassifier(speech-commands) (#389)

* added ml5.soundClassifier(speech-commands)

* not require fs node module for testing

* Reuse getTopKClasses in doodlenet, darkneet and speech-commands

* fix: getTopKClasses return className and probability

* DCGAN refactor + preload (#398)

* restructure dcgan to accept path to manifest.json

* added check for absolute or relative url path

* rm console.log

* added DEFAULT if modelPath is null or undefined in jsonLoader

* use async/await in loadModel

* add dcgan to preload

* fixed breaking change

* updated index

* added modelReady prop

* shows preload working without additional async call to load manifest

* allows for preload

* added a bird image for testing purpose

* update bird image link from ml5-library for testing (#403)

* renaming model names to ml5.soundClassifier(SpeechCommands18w) (#404)

* ml5.featureExtractor loading models from the new teachable machine (#395)

* load model from new teachable machine

* featureExtractor use jointModel

* only train custom model but save the joint model

* Bodypix (#400)

* added BodyPix placeholder

* "@tensorflow-models/body-pix": "1.0.1",

* initial commit placeholder for bodypix

* added bodypix as bp and loadModel()

* added segment and segmentInternal

* change promise to async

* return result maskPerson and maskBackground

* adds part segmentation

* rm log

* add segmentation as result.raw

* add function to create bodyParts spec object

* added test

* added optional segmentationOptions param to segment() and segmentWithParts()

* added package.lock

* updated DEFAULTS to BODYPIX_DEFAULTS

* code cleanup

* added comments

* added jsdoc comments

* add check p5 color()

* updated bodyPartSpec image color handling for p5

* changed palette spec to object

* ml5.imageClassifier() loads pre-trained custom model (#408)

* imageClassifier load a model from url

* added options to local model from local files

* supports imageClassifier.classify(video)

* ml5.soundClassifier(url)

* docs: add shiffman as a contributor (#410)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: add cvalenzuela as a contributor (#414)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: update README.md

* docs: update .all-contributorsrc

* rm files to start fresh (#417)

* docs: add shiffman as a contributor (#418)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: add cvalenzuela as a contributor (#419)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add yining1023 as a contributor (#421)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add handav as a contributor (#423)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add joeyklee as a contributor (#424)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AshleyJaneLewis as a contributor (#425)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add ellennickles as a contributor (#426)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add itayniv as a contributor (#427)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nikitahuggins as a contributor (#428)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AbolTaabol as a contributor (#429)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AidanNelson as a contributor (#430)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add WenheLI as a contributor (#431)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add dariusk as a contributor (#432)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Derek-Wds as a contributor (#433)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add garym140 as a contributor (#434)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add genekogan as a contributor (#435)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add hhayley as a contributor (#436)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add lisajamhoury as a contributor (#437)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add matamalaortiz as a contributor (#438)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add mayaman as a contributor (#439)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add MimiOnuoha as a contributor (#440)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add NHibiki as a contributor (#441)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add oveddan as a contributor (#442)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add stephkoltun as a contributor (#443)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add viztopia as a contributor (#444)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add wenqili as a contributor (#446)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add brondle as a contributor (#447)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Jonarod as a contributor (#448)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add JazzTap as a contributor (#449)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add zaidalyafeai as a contributor (#450)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AlcaDesign as a contributor (#451)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add memo as a contributor (#452)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add TheHidden1 as a contributor (#453)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add meiamsome as a contributor (#454)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add marshalhayes as a contributor (#455)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add reiinakano as a contributor (#456)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nsthorat as a contributor (#457)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add irealva as a contributor (#458)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add vndrewlee as a contributor (#459)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add fjcamillo as a contributor (#460)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add achimkoh as a contributor (#461)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add hx2A as a contributor (#462)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add champierre as a contributor (#465)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add micuat as a contributor (#466)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add montoyamoraga as a contributor (#467)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add b2renger as a contributor (#468)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add adityaas26 as a contributor (#469)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add okuna291 as a contributor (#470)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add xujenna as a contributor (#471)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nicoleflloyd as a contributor (#472)

* docs: update README.md

* docs: update .all-contributorsrc

* updated package-lock

* pass vector to dcgan compute

* Adds face-api.js to ml5.js (#482)

* initial commit - add classifyExpressions

* added classifyExpressionsMultiple() and classifyExpressionsSingle()

* remove modelPath requirement in favor of defaults

* updated index with links to tiny landmarks

* adds option to add relative path or absolute url

* updated url checking for models

* changed function names

* updated functions to .detect() and .detectSingle()

* check undefined, otherwise assign

* added resize function to results by default

* code cleanup

* added test to faceapi

* added tests

* added face parts to result.parts

* code cleanup

* changed options from withFaceX to withX

* code cleanup

* code cleanup

* fixed conditional to include face .withFaceDescriptor(s)

* docs: add jepster-dk as a contributor (#489)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add xanderjakeq as a contributor (#490)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add catarak as a contributor (#491)

* docs: update README.md

* docs: update .all-contributorsrc

* [WIP]Change p5Utils into a class

* dcgan: use random vector if no latent vector is given

* dcgan check if arg is array

* updated code of conduct with adapted p5 community statement (#492)

* updated code of conduct with adapted p5 community statement

* Update CODE_OF_CONDUCT.md

rm coding train from donation // todo - add other relevant orgs next

Co-Authored-By: Daniel Shiffman <daniel.shiffman@gmail.com>

* updated enforcement with ashley and dan

* rm redundant all contributors badge (#497)

* Readme updates (#505)

* added package.lock

* updates links to latest website

* rm 'with no external deps'

* set correct url to image (#507)

* docs: add dcbriccetti as a contributor (#506)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Sblob1 as a contributor (#513)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: update README.md

* docs: update .all-contributorsrc

* Fu

* add command line arguments for testing single model

* Handling p5 Image in PoseNet singlePose

I have changed singlePose function in order to handle p5 Image types. 

However I'm not sure if the check is thorough enough. Any pointers are welcome.

* Adds ImageData support for all image handling functions (#525)

* added ImageData support to YOLO

* adds ImageData support to UNET

* adds ImageData support to StyleTransfer

* adds ImageData support to PoseNet

* adds ImageData support for ImageClassifier/darknet

* adds ImageData support for ImageClassifier/doodlenet

* adds ImageData support for BodyPix and cleans up conditionals

* adds ImageData support to faceApi and cleans up conditionals

* adds ImageData support for imageclassifier and cleans up conditional

* fix image handling for bodypix faceapi and imageclassifier

* update mobilenet imageData support

* check imagedata in yolo

* adds ImageData test to BodyPix

* adds check for canvas (#526)

* Fixes Posenet input arguments and related issues (#529)

* adds this.multiPose() to else{}

* fixes conditional check on object or string

* added kmeans

* added randomSample function

* re-ordered name placement

* fixed weird indentation error

* indentation

* removed optional keyword in docstring

* updates issue and pull request templates (#530)

* Created config class attribute to store instance params

* Adds release script helper (#534)

* adds release helper function

* update name and sep step for release:push

* add release:publish

* Adds release script helper (#535)

* adds release helper function

* update name and sep step for release:push

* add release:publish

* adds tagging to release:publish

* fixes typo

* added test to kmeans (#536)

* docs: add jwilber as a contributor (#537)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add tezzutezzu as a contributor (#538)

* docs: update README.md

* docs: update .all-contributorsrc

* Update Contributing and Github docs (#539)

* updated issue template:

* update PR template

* added new release how to

* docs: add EmmaGoodliffe as a contributor (#545)

* docs: update README.md

* docs: update .all-contributorsrc

* Update tfjs ~v1.2.2 (#544)

* updated tfjs to 1.2.2 and bumped face-api to 0.20.1

* bump tensorflow models

* bump body-pix version

* adds version 2 to feature extractor

* updated to mobilenetv2 api

* updates to posenet 2 api

* always process and resize images in mobilenet

* update test with version 2

* update posenet inputs and test

* fix issue with params in posenet

* updates conditional in p5Utils

* add loadImage test (#549)

* Update npm helper scripts for making releases (#552)

* updating release process scripts and docs

* updated release proces npm scripts and docs

* added release:sync and developement:sync"
"

* set fe to mobilenet v1 - use layers model (#554)

* Adds Docsify to consolidate documentation (#556)

* add docsify-cli as dev dep

* adds docs structure for docsify

* adds bodyPix documentation example

* update bodypix documentation

* adds imageClassifer docs

* added styleguide template and updated docs

* changed name of reference template

* added dev guidelines

* update dev guidelines

* adds posenet docs

* adds tutorials and faq

* add dev:docs npm script

* adds char rnn to docs

* Adds documentation for references to docsify docs (#557)

* add note on all contributors bot

* adds faceapi header img"

* adds design guidelines

* adds design guidelines to sidebar

* adds section for p5 web editor examples

* adds cvae refs

* update bodypix and charrnn docs

* added dcgan docs

* adds pitch detection docs

* adds featureExtractor docs

* adds knn classifier

* update tutorial refs

* adds pix2pix doc

* adds sentiment docs

* adds sketchrnn ref

* adds sound classifier

* adds styletransfer docs

* adds unet docs

* adds word2vec docs

* adds yolo docs

* adds acknowledgements section

* adds acknowledgements section

* Fixes Doodlenet - set new axes and .floor() (#559)

* change split axis to 3 axes

* use floor() instead of round()

* adds options for detection confidence (#561)

* Adds labels to custom image classification model from Teachable Machine output

* Addressing issue #590 part 1 (#592)
>The saved labels from Teachable Machine should be loaded by ml5. I believe this is working for sound classification, but not for images.

Fetching labels from metadata.json when loading models from the new Teachable Machine.

* docs: add EonYang as a contributor (#593)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add lydiajessup as a contributor (#594)

* docs: update README.md

* docs: update .all-contributorsrc

* set alias for sidebar (#598)

* update docsify config

* testing pathways

* adds sublevel 2

* rm sidebar comment

* testing sidebar nested list issue

* relative path is false - using gh-pages

* testing - pls ignore

* testing plugin issue

* drop alias

* added no jekyll to root"

* testing pathway for images

* rm dot from path

* set rel path

* changed images to _media

* use _media path for images

* [Docs] Uses gh-pages to serve docsify docs (#599)

* update docsify config

* testing pathways

* adds sublevel 2

* rm sidebar comment

* testing sidebar nested list issue

* relative path is false - using gh-pages

* testing - pls ignore

* testing plugin issue

* drop alias

* added no jekyll to root"

* testing pathway for images

* rm dot from path

* set rel path

* changed images to _media

* use _media path for images

* adds header nav to docs

* updates alt text and image url

* adds getting started url

* adds reference index

* updates href to reference in nav (#601)

* [face-api] Removes expressions support from face-api in ml5.js (#602)

* rm faceapi expressions support

* rm expression ref in comment

* updates tests for faceapi

* fixes single detection and tests

* Update docs (#603)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds face-api and neural-network placeholder

* adds section for web editor

* set to /tree/development and adds posenet examples

* adds link to src code

* updates references to examples

* sets tree/development as path

* updates face-api and neural net docs

* Revert "Update docs (#603)" (#604)

This reverts commit c6b78d0a7aedc7050a095386ad88300d91a761b2.

* Updates docsify docs (#605)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds face-api and neural-network placeholder

* adds section for web editor

* set to /tree/development and adds posenet examples

* adds link to src code

* updates references to examples

* sets tree/development as path

* updates face-api and neural net docs

* rm neural net class from update-docs branch

* moves bodyPix to support preload() (#610)

* Adds preload support to faceApi  (#611)

* moves bodyPix to support preload()

* adds faceapi to preload

* Updates Docs with latest features (#612)

* adds face-api updates and neural network docs updates

* adds docs for nn functions

* adds save and load docs

* adds neural Network documentation

* fixes backticks

* adds sidebar dividers

* adds docs on model loading and contributors (#616)

* Updates gh templates (#617)

* updates PR template

* updates gh issues template

* updates template

* Generic Neural Network class (#485)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds blob reader for json

* [diy nn] moves tf-vis visualizations to helper class (#583)

* adds tfvis to neuralNetworkVis.js

* adds tfvis to class

* handle text and convert to json (#584)

* allow user more control in the case of classification

* allow user more control in the case of classification (#585)

* Refactoring DIY Neural Network (#591)

* [wip] refactoring data handling and logic separation

* wip adding convertRawToTensor

* adds conversion to tensor

* adds normalization step

* adds train()

* adds predictInternal()

* fixes unique value mapping issue

* comment out .print()

* return all regression results

* adds experimental normalizationOptions object

* quick fix for checking if normalizationOptions exists

* commenting out auto tensor printing

* adds checks for normalizationOptions

* fix obj ref in conditional

* adds .normalizeData() - keeps .normalize() for now

* changes whileTraining function when debug is true

* adds layer options for adding more than 2 layers - experimentalgit add .

* remove .normalize() in favor of .normalizeData()

* adds save() and load()

* adds data.warmUp() to allow training without normalization - handled internally on train

* updates outputs of .predict() and .classify() to be array

* Divide by 0 issue when data is not normalized (#596)

* skipping calculating inputMin and inputMax when data not normalized

* adds check for this.data.meta.isNormalized in predictInternal

* Diy nn code cleanup (#606)

* adds input/output checks to specify number or array of input/output names

* moves model creation to training to compile after input and output units have been calcd

* cleanup code in .trainInternal()

* move vars up to top of function in .trainInternal()

* rm model creation from .createModelFromDataInternal()

* code cleanup and adds comments to .initializeIOUnits()

* code cleanup

* [DIY NN] Adds .saveData() and .loadData() (#607)

* adds saveData function

* updates saveData() with input checks

* adds loadData function

* [Diy NN] Adds .predictMultiple() for batch predictions/classifications (#609)

* adds predictMultiple()

* rm ys.print()

* moves bodypix and faceapi to preload support to match base branch

* [DIY nn] Neural Net Fixes loading pre-trained model (#613)

* adds model_meta.json to savedfiles

* adds loading of model_meta.json - temp fix

* use substring method for url checking

* adds check for if input is JSON

* loadData and text variables mixed up (#615)

* [Diy nn] fix model loading load (Work in progress) (#618)

* adds input object as param to .load()

* adds fetch to retrieve data from urls in .load() based on object

* updates object handler

* fixes check for model.json

* fixes parsing and ordering files

* adds fix for p5 web editor - must use explicit json object to load models

* allows user to add video to .segment() and .segmentWithParts() (#619)

* updates unet docs (#620)

* adds basic test for defaults (#621)

* docs: add EmmaGoodliffe as a contributor (#622)

* docs: update README.md

* docs: update .all-contributorsrc

* adds fix for unet image return for p5 (#625)

* updates webpack dev server to 3.1.11 (#629)

* Fixes vulnerabilities noted by npm (#630)

* run npm audit fix

* bumps commitizen dep

* updated readme and readme updater (#632)

* Update NeuralNetwork docs (#631)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

…
joeyklee added a commit that referenced this pull request Nov 14, 2019
* [devops] Merges fixes in release to development (#698)

* [v0.4.2] v0.4.2 (#685)

* [neural net fix] Merges neural net fix in release to development branch (#676)

* ml5 release v0.4.0 (#640)

* Updates dev with release and Removes /dist from past commits and future dev (#479)

* Remove unnecessary tf.tidy call

* Implement (err, value) callback style, add test for LSTMGenerator

* Callbackify Mobilenet.classify and Mobilenet.regressor

* Add events dep

* add travis.yml

* remove circleci

* removing test script

* removing package-lock.json

* update yarn.lock

* set up browserstack

* snapshot

* yarn test-travis from .travis.yml

* chmod +x trest-travis

* shebang

* bs launcher

* access key

* add a log

* kick travis

* snapshot

* change browserstack env names

* Added Browserstack badge

* Resolve https://github.com/ml5js/ml5-library/pull/151#discussion_r196475143

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196484426

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196517984

* Address https://github.com/ml5js/ml5-library/pull/151#discussion_r196518890

* Add license to callCallback, return this from ImageClassifier#loadModel

* Add mocha reporter back, try to make classes thenable

* Update karma configuration

- Fixes a weird bug where tensors were spuriously disposed by tfjs in testing environment due to there being multiple tfjs instances present on the page from the different builds
- Improves stack traces to make debugging easier by disabling minification in karma webpack.
- Only webpack the main package, this means that the test files have to use the global ml5 object.

* Add tests for Word2Vec

- validates that there are no leaked tensors
- validates basic functionality of nearest
- validates that add, subtract and average return things

- Fixes memory leaks in add, subtract, average, and addOrSubtract functions
- Adds a general dispose to the Word2Vec class

* Remove console.log

* Add an easy way to run test suite once

* Handle rejected promises

* fix eslint errors in lstm and w2v

* Support for callbacks in word2vec and fix tests.
Moved the YOLO weights to the examples repo.
Fix eslint in some files

* Add tests to imageclassifier
fix video issue in imageclassifier

* - Add test for YOLO
- Add test for Imageclassifier
- Resize img if necessary in utils

* - Add license to test files
- Style transfer test
- remove .test file in posenet

* - Update poseNet version to 0.1.3
- Add posnet test

* test commit

* - Fix issues in imageclassifier

* - update pitch detection to #158
- fix event emmiter in posenet
- fix constructor in yolo
- async video util

* temp fix to test leak

* Fix posenet on video ready

* refactor pix2pix to support promises

* support promise when create a new styletransfer method

* bump to version 0.1.0

* bump to 0.1.1

* update readme

* clarification and formatting changes to ensure steps are easy to follow

* ImageClassifier: predict: handle unsupported input

* add proper attributions for models

* Update index.js

* fix eslint for links

* Update index.js

* Update index.js

* Update index.js

* Update README.md (#207)

* Support canvas elements and canvases from p5.js in ImageClassifier (#206)

* Bugfix: PitchDetection returning the wrong pitch (#187)

When converted to the current syntax, the operation was the wrong way around.
See https://github.com/marl/crepe/blob/gh-pages/crepe.js#L141 for the original.

*  fix(addImage, classify, predict): now featureExtractor works with images (it was working only with video) (#191)

* fix(addImage, classify, predict): now featureExtractor works with images (it was working only with v

* fix(addImage, classify, predict): now featureExtractor works with images (it was working only with video

* added darknet reference and darknet tiny classifiers (#201)

* added darknet reference and darknet tiny classifiers

* fixed linting stuff

* edits..

* edits2.0

* clean comments

* SketchRNN  (#189)

* init sketchrnn

* strokes

* add models

* stylefixes

* some more bugfixes

* comments

* update dependencies

* Load and save a custom model created with FeatureExtractor  (#219)

* load and save feature extractor model

* update learning rate

* add string an callback

* KNN Classifier (#171)

* added KNNClassifier class, and getFeatures method in ImageClassifier

* added knnclassifer.loaddataset, and savedataset from/as json file

* added featureExtractor.infer() to take in p5 videoelement

* support callback, and add 'label' for each class

* added getClassExampleCountByLabel, support label when save/load dataset

* update function naming, predictClass to classify, classLabel to label

* updates to way of handling strokes (#228)

* Fixing up SketchRNN (#232)

* Code of Conduct (#225)

Just noticing we don't have a code of conduct so adding to the main library repo (we can discuss whether we should put this across all repos -- probably, yes?) This is the [Contributor Covenant](https://www.contributor-covenant.org/).

* saving feature extrctor model with ml5Specs (#233)

* Stateful LSTM (#234)

* allow passing in of lstm state c and h. return more lstm info (c, h, probabilities)

* fix LSTM Stateful ness and other tweaks

* LSTM probabilities class property

* remove weird ind<100 check

* remove unnessecary initCells

* add LSTM methods state getter, setter and reset

* rename to charRNN and update stateful to match discussed api

* add callback to feed

* fix bug in predict

* adding new probabilites object

* new build

* Additional arguments option for SketchRNN (#237)

* Fixing up SketchRNN

* arguments fix for SketchRNN interactive

* adding build

* update version

* KNN update (#256)

* let knn.addExample() and classify() accept a plain array as input

* simplify and shorten knn api function names

* rename a variable in clearlabel()

* knn.save checks if file name has .json

* remove timestamp in the filename for .save()

* update package-loack to fix travis test on node 10

* update yarn lock

* fix - adds callback support for single functions in posenet re: #244 (#254)

* fix(adds callback support for single functions in posenet https://github.com/ml5js/ml5-library/issue

adds callback support for single functions in posenet
https://github.com/ml5js/ml5-library/issues/244

https://github.com/ml5js/ml5-library/issues/244

* rm package-lock.json

* fix(PoseNet/index.js): Add support for PoseNet `.singlePose()` & `.multiPose()` callback #244

Add support for PoseNet `.singlePose()` & `.multiPose()` callback #244 & updated callback error
handling

#244

* rm error check when returning callback in posenet singlePose & multiPose

* fixed indentation

* temp rm cb function

* added cb function back in

* added yarn and package lock

* added lock files from ml5 master

* updating to version 0.2.0 (#264)

* V0.2.1 Tagged Release (#267)

* updating to version 0.2.0

* run build process and built lib

* Release v0.2.1 - npm publish issue

* added github issue template (#275)

* add different ways of including ml5js on the HTML header (#268)

(We will follow up and update the version to the latest which is v0.2.1)

* updated readme specifying versions for lib (#282)

* fix: Use Blobs to save files of larger sizes (#271)

* fix: Use Blobs to save files of larger sizes

fix #270

* use saveBlob() to save knn models, delete io.saveFile(), because saveBlob does the same thing and can handle big files

* Show the version number of the library. (#283)

Adds the library version from the package.json for each build.

* fix issue that server fails to listen dev folder (#287)

*     feat(KNNClassifier): Add loadData() that enables user to load dat… (#279)

*     feat(KNNClassifier): Add loadData() that enables user to load dataset from raw data instead of file

    With load(), file path needs to be provided to load dataset. This means that JSON file that has
    dataset needs to be located on the server. You can give a way to download dataset using save(), but
    you cannot give a way to upload that file and load the dataset. This commit adds loadData() that
    enables user to load dataset from raw data. By combining this method and <INPUT type="file"> tag,
    you can give a way for user to upload dataset file.

* Merge load(path, callback) and loadData(data, callback) into load(pathOrJson, callback).

* Merge load() and loadData() in a cleaner way without using Symbol.

Ref. https://github.com/ml5js/ml5-library/pull/279#issuecomment-465890231

* feat(src/PoseNet/index.js): Ability to access parts of pose by name.

Now can simply do pose.nose.x or pose.nose.confidence. Using original PoseNet naming scheme (i.e.
rightShoulder).

re #245

* Update ImageClassifier and FeatureExtractor to return [{label, confidence}] (#292)

* change imageClassifier.predict() to classify(), keep predict until later version

* update imageclassifier.classify results to [{label: .., confidence: ..}]

* update featureExtractor regressor return {value: 0-1}

* update featureextractor.classify to return [{label, confidence}]

* Support p5 preload with ml5 functions (#288)

* support p5 preload with ml5 functions

* make withPreload object clean

* an automatic script to initialize experiments dir (#295)

* an alternative way to test with experiments dir

* revert change for webpack.dev

* Change experiments to manual-test

* rename folder to manual-test

* update .gitignore

* patch style transfer for non-square and canvas-derived inputs (#311)

* fix preload bugs (#305)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318) (#319)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Add tests to CharRNN (#307) (#320)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Updated CONTRIBUTING docs and README (#322)

* updated readme specifying versions for lib

* added documentation to contributing.md

* added updates

* added label and confidence as output for yolo results (#316)

* added label and confidence as output

* updates yolo test to use label instead of className

* Increase test timeout (#321)

* added label and confidence as output

* updates yolo test to use label instead of className

* set jasmine.DEFAULT_TIMEOUT_INTERVAL to 60000ms

* Merges in https://github.com/ml5js/ml5-library/pull/313 via master using deprecating-master branch (#323)

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* added v0.2.2 to package.json in anticipation of new release

* Fixing an issue with prettier and eslint (#324)

* Fixing an issue with prettier and eslint

There is a conflict between arrow syntax rules in airbnb eslint
configuration and the way default prettier works in VSCode. These
additional setting should help anyone using VSCode with autoformat +
prettier to not run into problems building the library.

I am open to better ways of handling this of course!

(Note the changes in ImageClassifier are trivial and just testing).

* adding eslint-config-prettier as dev dependency

* trivial change to run tests again

* Adjust charrnn test option length (#326)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* Adjust charrnn length - comment 2nd test for now (#329)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* comment out second charRNN test for now to allow merging PRs

* Forcing magenta dependency to 0.1.2 (#328)

The SketchRNN example doesn't work with more recent magenta (0.1.4)
probably due to us lagging behind in versions of tf.js?

* SketchRNN creation function should be lowercase (#325)

This is related to the discussion in #297.

* added v0.2.2 to package.json in anticipation of new release (#330)

hooray adding release v0.2.2

* Release v0.2.2 πŸŽ‰ (#331)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Hi! I noticed that the changes made here: https://github.com/ml5js/ml5-library/pull/295 have not made their way into the documentation! (#318) (#319)

* Updated issues template and added PR template (#315)

* added github issue template

* updated issue template

* updated ISSUE_TEMPLATE with friendlier wording and structure

* added pr template

* added branch notes

* Updated CONTRIBUTING.md with npm run manual-test

* Add tests to CharRNN (#307) (#320)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Updated CONTRIBUTING docs and README (#322)

* updated readme specifying versions for lib

* added documentation to contributing.md

* added updates

* added label and confidence as output for yolo results (#316)

* added label and confidence as output

* updates yolo test to use label instead of className

* Increase test timeout (#321)

* added label and confidence as output

* updates yolo test to use label instead of className

* set jasmine.DEFAULT_TIMEOUT_INTERVAL to 60000ms

* Merges in https://github.com/ml5js/ml5-library/pull/313 via master using deprecating-master branch (#323)

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* added v0.2.2 to package.json in anticipation of new release

* Fixing an issue with prettier and eslint (#324)

* Fixing an issue with prettier and eslint

There is a conflict between arrow syntax rules in airbnb eslint
configuration and the way default prettier works in VSCode. These
additional setting should help anyone using VSCode with autoformat +
prettier to not run into problems building the library.

I am open to better ways of handling this of course!

(Note the changes in ImageClassifier are trivial and just testing).

* adding eslint-config-prettier as dev dependency

* trivial change to run tests again

* Adjust charrnn test option length (#326)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* Adjust charrnn length - comment 2nd test for now (#329)

* changed 500 to 100 to shorted test time

* fixed .tobe() to match option

* changed vocab size to 64

* changed timeout to 12000

* comment out second charRNN test for now to allow merging PRs

* Forcing magenta dependency to 0.1.2 (#328)

The SketchRNN example doesn't work with more recent magenta (0.1.4)
probably due to us lagging behind in versions of tf.js?

* SketchRNN creation function should be lowercase (#325)

This is related to the discussion in #297.

* added v0.2.2 to package.json in anticipation of new release (#330)

hooray adding release v0.2.2

* added latest v0.2.2

* Some minor README adjustments (#334)

* I am de-emphasizing `@latest` as in my experience this can lead to confusion.
* I don't think my name needs to be referenced!

* V0.2.3 (#341)

* ran npm install, added new package json version, and built dist

* updated package lock

* updated package lock and ran build

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* 🌈 New Release: ml5.js v0.3.0 πŸŽ‰ (#386)

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* 🌈 New Release: ml5.js v0.3.0 πŸŽ‰ (#386)

* add ImageData as valid image type

* add CVAE

* add latent dim

* add random generate

* fix p5Image support

* fix CVAE parameter

* Added a parameter to the save function so that it is possible to add a custom filename to the model that is saved.

* Unet fix (#357)

Add uNet model and additional fixes

- adds uNet model from @zaidalyafeai ✨
- adds preload() for uNet
- uses loadImage on window.loadImage vs. window.p5.loadImage

* Added sentiment analysis (#339)

* Added sentiment analysis

* delete files

* fixed issues for pull request

* add p5 utils (#358)

* fix charRNN tests (#349)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* Add tests to CharRNN (#307)

* add tests to CharRNN

* test(CharRNN): add tests to CharRNN

added descriptive tests to ensure CharRNN behaves like its example

* remove dist

* check preload support for other nets and classifiers (#313)

Adds specified nets to support preload // TODO: add examples showing appropriate use of preload

* change CharRNN specs to meet time limit, add initial code for videoClassifier

* videoClassifier functioning

* charRNN functional

* fix out of date file

* add preload support for cvae (#360)

* Update TensorFlow.js to 1.0.2 (#336)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* Adds fixes to PR #332 for tfjs 1.0.2 updates (#366)

* upgrade to tfjs1.0.0

* fix loadModel

* fix buffer

* fix getLayer

* updated package lock

* added @tensorflow/tfjs-core as dependency

* add graphmodel for infer (#365)

* Add DCGAN Model into ml5 (#351)

* Create index.js

* updated index.js and DCGAN/index.js

* DCGAN updates and fixes (#362)

* Create index.js

* fixed DCGAN errors

* updates p5Utils destructuring, fixes linting issues, and updates tfjs to 1.0.2 to match dcgan reqs

* fixed cvae

* use this.model instead of using model as param to this.compute()

* Makes UNET compatible with tfjs 1.0.2 (#367)

* added package-lock

* updated UNET for use with tfjs 1.0.2

* Makes Sentiment compatible with tfjs 1.0.2 (#368)

* added package-lock

* rm sentiment-node

* changed loadModel to loadLayersModel

* Makes CVAE compatible with tfjs 1.0.2 (#369)

* added package-lock

* updates cvae to tfjs 1.0.2 api

* update tfjs to 1.1.2 (#373)

* featureExtractor: accept HTML canvas or p5 canvas when addImage(), classify() or predict()

* fix: KNNClassifier accepts a number as class index when addExample(features, number)

* added check for moz browser ref:https://stackoverflow.com/questions/48623376/typeerror-capturestream-is-not-a-function (#375)

This addresses the video capture breaking in YOLO and potentially other video based functions that require the use of .captureStream(). As the .captureStream() function is still experimental, this adds the moz prefix and a browser check to see if we are using firefox or not.

* rm todo

* updated package-lock.json

* Adds label number option to featureExtractor.classification()  (#376)

* changed numClasses to numLabels

* added num label as option to classification()

* updated FeatureExtractor Test with numLabels

* adds object as param to .classificaiton()

* moved options into this.config

* fix feature extractor test - add .config

* added pose:poseWithParts into .singlePose() (#381)

* Adds jsdoc inline-documentation - work in progress (#378)

* added jsdoc documentation for imageClassifier

* adds dcgan documentation - needs checking

* Add jsdoc (#382)

* Add jsdocs for CharRNN

* Add jsdocs for CVAE

* Add jsdocs for FeatureExtractor

* Add jsdocs for KNN

* Add jsdocs for PitchDetection

* Add jsdocs for Pix2pix

* Add jsdocs for posenet

* Add jsdocs for Sentiment

* Add jsdocs for styletransfer

* add linebreaks to long lines

* added basic docs to sketchRnn

* added basic docs to unet

* added basic docs to word2vec

* added basic yolo docs

* Adds V0.3.0 to package.json and Readme for new release (#385)

* changed package.json to v0.3.0

* added latest version reference in readme

* added lib min - will remove after this release

* added ml5.imageClassifier(doodleNet)

* doodlenet: transfer input img to black white image

* warm up model, comments

* added ml5.soundClassifier(speech-command)

* Revert "added ml5.soundClassifier(speech-command)"

This reverts commit 317c146450d65aa1ad9f1ef67bf912a792b0d8a0.

* update darknet link to use jsdelivr instead (#391)

* changed cdn link to doodlenet model (#390)

* adding ml5.soundClassifier(speech-commands) (#389)

* added ml5.soundClassifier(speech-commands)

* not require fs node module for testing

* Reuse getTopKClasses in doodlenet, darkneet and speech-commands

* fix: getTopKClasses return className and probability

* DCGAN refactor + preload (#398)

* restructure dcgan to accept path to manifest.json

* added check for absolute or relative url path

* rm console.log

* added DEFAULT if modelPath is null or undefined in jsonLoader

* use async/await in loadModel

* add dcgan to preload

* fixed breaking change

* updated index

* added modelReady prop

* shows preload working without additional async call to load manifest

* allows for preload

* added a bird image for testing purpose

* update bird image link from ml5-library for testing (#403)

* renaming model names to ml5.soundClassifier(SpeechCommands18w) (#404)

* ml5.featureExtractor loading models from the new teachable machine (#395)

* load model from new teachable machine

* featureExtractor use jointModel

* only train custom model but save the joint model

* Bodypix (#400)

* added BodyPix placeholder

* "@tensorflow-models/body-pix": "1.0.1",

* initial commit placeholder for bodypix

* added bodypix as bp and loadModel()

* added segment and segmentInternal

* change promise to async

* return result maskPerson and maskBackground

* adds part segmentation

* rm log

* add segmentation as result.raw

* add function to create bodyParts spec object

* added test

* added optional segmentationOptions param to segment() and segmentWithParts()

* added package.lock

* updated DEFAULTS to BODYPIX_DEFAULTS

* code cleanup

* added comments

* added jsdoc comments

* add check p5 color()

* updated bodyPartSpec image color handling for p5

* changed palette spec to object

* ml5.imageClassifier() loads pre-trained custom model (#408)

* imageClassifier load a model from url

* added options to local model from local files

* supports imageClassifier.classify(video)

* ml5.soundClassifier(url)

* docs: add shiffman as a contributor (#410)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: add cvalenzuela as a contributor (#414)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: update README.md

* docs: update .all-contributorsrc

* rm files to start fresh (#417)

* docs: add shiffman as a contributor (#418)

* docs: update README.md

* docs: create .all-contributorsrc

* docs: add cvalenzuela as a contributor (#419)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add yining1023 as a contributor (#421)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add handav as a contributor (#423)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add joeyklee as a contributor (#424)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AshleyJaneLewis as a contributor (#425)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add ellennickles as a contributor (#426)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add itayniv as a contributor (#427)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nikitahuggins as a contributor (#428)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AbolTaabol as a contributor (#429)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AidanNelson as a contributor (#430)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add WenheLI as a contributor (#431)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add dariusk as a contributor (#432)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Derek-Wds as a contributor (#433)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add garym140 as a contributor (#434)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add genekogan as a contributor (#435)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add hhayley as a contributor (#436)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add lisajamhoury as a contributor (#437)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add matamalaortiz as a contributor (#438)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add mayaman as a contributor (#439)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add MimiOnuoha as a contributor (#440)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add NHibiki as a contributor (#441)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add oveddan as a contributor (#442)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add stephkoltun as a contributor (#443)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add viztopia as a contributor (#444)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add wenqili as a contributor (#446)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add brondle as a contributor (#447)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Jonarod as a contributor (#448)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add JazzTap as a contributor (#449)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add zaidalyafeai as a contributor (#450)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add AlcaDesign as a contributor (#451)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add memo as a contributor (#452)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add TheHidden1 as a contributor (#453)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add meiamsome as a contributor (#454)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add marshalhayes as a contributor (#455)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add reiinakano as a contributor (#456)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nsthorat as a contributor (#457)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add irealva as a contributor (#458)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add vndrewlee as a contributor (#459)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add fjcamillo as a contributor (#460)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add achimkoh as a contributor (#461)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add hx2A as a contributor (#462)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add champierre as a contributor (#465)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add micuat as a contributor (#466)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add montoyamoraga as a contributor (#467)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add b2renger as a contributor (#468)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add adityaas26 as a contributor (#469)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add okuna291 as a contributor (#470)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add xujenna as a contributor (#471)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add nicoleflloyd as a contributor (#472)

* docs: update README.md

* docs: update .all-contributorsrc

* updated package-lock

* pass vector to dcgan compute

* Adds face-api.js to ml5.js (#482)

* initial commit - add classifyExpressions

* added classifyExpressionsMultiple() and classifyExpressionsSingle()

* remove modelPath requirement in favor of defaults

* updated index with links to tiny landmarks

* adds option to add relative path or absolute url

* updated url checking for models

* changed function names

* updated functions to .detect() and .detectSingle()

* check undefined, otherwise assign

* added resize function to results by default

* code cleanup

* added test to faceapi

* added tests

* added face parts to result.parts

* code cleanup

* changed options from withFaceX to withX

* code cleanup

* code cleanup

* fixed conditional to include face .withFaceDescriptor(s)

* docs: add jepster-dk as a contributor (#489)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add xanderjakeq as a contributor (#490)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add catarak as a contributor (#491)

* docs: update README.md

* docs: update .all-contributorsrc

* [WIP]Change p5Utils into a class

* dcgan: use random vector if no latent vector is given

* dcgan check if arg is array

* updated code of conduct with adapted p5 community statement (#492)

* updated code of conduct with adapted p5 community statement

* Update CODE_OF_CONDUCT.md

rm coding train from donation // todo - add other relevant orgs next

Co-Authored-By: Daniel Shiffman <daniel.shiffman@gmail.com>

* updated enforcement with ashley and dan

* rm redundant all contributors badge (#497)

* Readme updates (#505)

* added package.lock

* updates links to latest website

* rm 'with no external deps'

* set correct url to image (#507)

* docs: add dcbriccetti as a contributor (#506)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add Sblob1 as a contributor (#513)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: update README.md

* docs: update .all-contributorsrc

* Fu

* add command line arguments for testing single model

* Handling p5 Image in PoseNet singlePose

I have changed singlePose function in order to handle p5 Image types. 

However I'm not sure if the check is thorough enough. Any pointers are welcome.

* Adds ImageData support for all image handling functions (#525)

* added ImageData support to YOLO

* adds ImageData support to UNET

* adds ImageData support to StyleTransfer

* adds ImageData support to PoseNet

* adds ImageData support for ImageClassifier/darknet

* adds ImageData support for ImageClassifier/doodlenet

* adds ImageData support for BodyPix and cleans up conditionals

* adds ImageData support to faceApi and cleans up conditionals

* adds ImageData support for imageclassifier and cleans up conditional

* fix image handling for bodypix faceapi and imageclassifier

* update mobilenet imageData support

* check imagedata in yolo

* adds ImageData test to BodyPix

* adds check for canvas (#526)

* Fixes Posenet input arguments and related issues (#529)

* adds this.multiPose() to else{}

* fixes conditional check on object or string

* added kmeans

* added randomSample function

* re-ordered name placement

* fixed weird indentation error

* indentation

* removed optional keyword in docstring

* updates issue and pull request templates (#530)

* Created config class attribute to store instance params

* Adds release script helper (#534)

* adds release helper function

* update name and sep step for release:push

* add release:publish

* Adds release script helper (#535)

* adds release helper function

* update name and sep step for release:push

* add release:publish

* adds tagging to release:publish

* fixes typo

* added test to kmeans (#536)

* docs: add jwilber as a contributor (#537)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add tezzutezzu as a contributor (#538)

* docs: update README.md

* docs: update .all-contributorsrc

* Update Contributing and Github docs (#539)

* updated issue template:

* update PR template

* added new release how to

* docs: add EmmaGoodliffe as a contributor (#545)

* docs: update README.md

* docs: update .all-contributorsrc

* Update tfjs ~v1.2.2 (#544)

* updated tfjs to 1.2.2 and bumped face-api to 0.20.1

* bump tensorflow models

* bump body-pix version

* adds version 2 to feature extractor

* updated to mobilenetv2 api

* updates to posenet 2 api

* always process and resize images in mobilenet

* update test with version 2

* update posenet inputs and test

* fix issue with params in posenet

* updates conditional in p5Utils

* add loadImage test (#549)

* Update npm helper scripts for making releases (#552)

* updating release process scripts and docs

* updated release proces npm scripts and docs

* added release:sync and developement:sync"
"

* set fe to mobilenet v1 - use layers model (#554)

* Adds Docsify to consolidate documentation (#556)

* add docsify-cli as dev dep

* adds docs structure for docsify

* adds bodyPix documentation example

* update bodypix documentation

* adds imageClassifer docs

* added styleguide template and updated docs

* changed name of reference template

* added dev guidelines

* update dev guidelines

* adds posenet docs

* adds tutorials and faq

* add dev:docs npm script

* adds char rnn to docs

* Adds documentation for references to docsify docs (#557)

* add note on all contributors bot

* adds faceapi header img"

* adds design guidelines

* adds design guidelines to sidebar

* adds section for p5 web editor examples

* adds cvae refs

* update bodypix and charrnn docs

* added dcgan docs

* adds pitch detection docs

* adds featureExtractor docs

* adds knn classifier

* update tutorial refs

* adds pix2pix doc

* adds sentiment docs

* adds sketchrnn ref

* adds sound classifier

* adds styletransfer docs

* adds unet docs

* adds word2vec docs

* adds yolo docs

* adds acknowledgements section

* adds acknowledgements section

* Fixes Doodlenet - set new axes and .floor() (#559)

* change split axis to 3 axes

* use floor() instead of round()

* adds options for detection confidence (#561)

* Adds labels to custom image classification model from Teachable Machine output

* Addressing issue #590 part 1 (#592)
>The saved labels from Teachable Machine should be loaded by ml5. I believe this is working for sound classification, but not for images.

Fetching labels from metadata.json when loading models from the new Teachable Machine.

* docs: add EonYang as a contributor (#593)

* docs: update README.md

* docs: update .all-contributorsrc

* docs: add lydiajessup as a contributor (#594)

* docs: update README.md

* docs: update .all-contributorsrc

* set alias for sidebar (#598)

* update docsify config

* testing pathways

* adds sublevel 2

* rm sidebar comment

* testing sidebar nested list issue

* relative path is false - using gh-pages

* testing - pls ignore

* testing plugin issue

* drop alias

* added no jekyll to root"

* testing pathway for images

* rm dot from path

* set rel path

* changed images to _media

* use _media path for images

* [Docs] Uses gh-pages to serve docsify docs (#599)

* update docsify config

* testing pathways

* adds sublevel 2

* rm sidebar comment

* testing sidebar nested list issue

* relative path is false - using gh-pages

* testing - pls ignore

* testing plugin issue

* drop alias

* added no jekyll to root"

* testing pathway for images

* rm dot from path

* set rel path

* changed images to _media

* use _media path for images

* adds header nav to docs

* updates alt text and image url

* adds getting started url

* adds reference index

* updates href to reference in nav (#601)

* [face-api] Removes expressions support from face-api in ml5.js (#602)

* rm faceapi expressions support

* rm expression ref in comment

* updates tests for faceapi

* fixes single detection and tests

* Update docs (#603)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds face-api and neural-network placeholder

* adds section for web editor

* set to /tree/development and adds posenet examples

* adds link to src code

* updates references to examples

* sets tree/development as path

* updates face-api and neural net docs

* Revert "Update docs (#603)" (#604)

This reverts commit c6b78d0a7aedc7050a095386ad88300d91a761b2.

* Updates docsify docs (#605)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds face-api and neural-network placeholder

* adds section for web editor

* set to /tree/development and adds posenet examples

* adds link to src code

* updates references to examples

* sets tree/development as path

* updates face-api and neural net docs

* rm neural net class from update-docs branch

* moves bodyPix to support preload() (#610)

* Adds preload support to faceApi  (#611)

* moves bodyPix to support preload()

* adds faceapi to preload

* Updates Docs with latest features (#612)

* adds face-api updates and neural network docs updates

* adds docs for nn functions

* adds save and load docs

* adds neural Network documentation

* fixes backticks

* adds sidebar dividers

* adds docs on model loading and contributors (#616)

* Updates gh templates (#617)

* updates PR template

* updates gh issues template

* updates template

* Generic Neural Network class (#485)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#581)

* changes for class

* values not value, but this does not match feature extractor regression

* [Diy nn] Fixes output reversal and gives unnormalized data as outputs of predict() (#582)

* unnormalize outputs for regression

* use .reverse() - note: we should use .unshift() where order matters

* code cleanup

* updates config inputs learning rate and code cleanup

* changed value to return result.outputs

* adds blob reader for json

* [diy nn] moves tf-vis visualizations to helper class (#583)

* adds tfvis to neuralNetworkVis.js

* adds tfvis to class

* handle text and convert to json (#584)

* allow user more control in the case of classification

* allow user more control in the case of classification (#585)

* Refactoring DIY Neural Network (#591)

* [wip] refactoring data handling and logic separation

* wip adding convertRawToTensor

* adds conversion to tensor

* adds normalization step

* adds train()

* adds predictInternal()

* fixes unique value mapping issue

* comment out .print()

* return all regression results

* adds experimental normalizationOptions object

* quick fix for checking if normalizationOptions exists

* commenting out auto tensor printing

* adds checks for normalizationOptions

* fix obj ref in conditional

* adds .normalizeData() - keeps .normalize() for now

* changes whileTraining function when debug is true

* adds layer options for adding more than 2 layers - experimentalgit add .

* remove .normalize() in favor of .normalizeData()

* adds save() and load()

* adds data.warmUp() to allow training without normalization - handled internally on train

* updates outputs of .predict() and .classify() to be array

* Divide by 0 issue when data is not normalized (#596)

* skipping calculating inputMin and inputMax when data not normalized

* adds check for this.data.meta.isNormalized in predictInternal

* Diy nn code cleanup (#606)

* adds input/output checks to specify number or array of input/output names

* moves model creation to training to compile after input and output units have been calcd

* cleanup code in .trainInternal()

* move vars up to top of function in .trainInternal()

* rm model creation from .createModelFromDataInternal()

* code cleanup and adds comments to .initializeIOUnits()

* code cleanup

* [DIY NN] Adds .saveData() and .loadData() (#607)

* adds saveData function

* updates saveData() with input checks

* adds loadData function

* [Diy NN] Adds .predictMultiple() for batch predictions/classifications (#609)

* adds predictMultiple()

* rm ys.print()

* moves bodypix and faceapi to preload support to match base branch

* [DIY nn] Neural Net Fixes loading pre-trained model (#613)

* adds model_meta.json to savedfiles

* adds loading of model_meta.json - temp fix

* use substring method for url checking

* adds check for if input is JSON

* loadData and text variables mixed up (#615)

* [Diy nn] fix model loading load (Work in progress) (#618)

* adds input object as param to .load()

* adds fetch to retrieve data from urls in .load() based on object

* updates object handler

* fixes check for model.json

* fixes parsing and ordering files

* adds fix for p5 web editor - must use explicit json object to load models

* allows user to add video to .segment() and .segmentWithParts() (#619)

* updates unet docs (#620)

* adds basic test for defaults (#621)

* docs: add EmmaGoodliffe as a contributor (#622)

* docs: update README.md

* docs: update .all-contributorsrc

* adds fix for unet image return for p5 (#625)

* updates webpack dev server to 3.1.11 (#629)

* Fixes vulnerabilities noted by npm (#630)

* run npm audit fix

* bumps commitizen dep

* updated readme and readme updater (#632)

* Update NeuralNetwork docs (#631)

* skeleton of generic Neural Network

* proof of concept for training and prediction

* use ml5 callcallbac to handle callback or promisek

* added activation to options

* load save model

* adds placeholder to test and adds defaults

* DIY Neural Net Updates  (#568)

* begins restructuring

* adds tfjs-vis and adds generic createModel() function

* adds tf viz and adds loadData function

* adds normalization function

* adds train function

* adds predict function

* work on DIY Neural Network (#569)

* fixing output and hidden activations

* moving data fields config to loadData()

Eventually this should be ml5.utils() or ml5.data()

* trimming whitespace

* rename labels to targets for training output

* using camelCase

* moves shuffle out of normalize

* [WIP] DIY Neural Net with focus on handling data internally (#571)

* adds data obj in class

* adds initialization step

* creates nn data class

* moves functions to data class

* working with titanic

* adds tf vis for training

* changes tf viz show on training is debug is true

* changes optimizer for regression

* adds unNormalize function

* fix normalization

* rm log

* refactors out to sep modules

* adds options to train

* adds options to train

* adds comments

* adds input/output array function

* removes i/o label check

* fixes optionOrCallback

* fix test

* adds comments

* updates data handling

* updates normalization data handling

* DIY NN data handling updates (#572)

* set up scaffold for creating inputs

* added output scaffolding - turn into functions todo

* adds function to encode data with ontHot or not

* ensure inputTypes/outputTypes exist

* [In progress] DIY NN - handles json and csv loading (#573)

* adds placeholders for json and csv loader'

* add json parsing

* adds true flag to normalization to fix broken function

* Fixes normalization function for NN (#575)

* adds possible fix - moves norm to external function

* adds correctly ordered data

* DIY Neural Network: Handles onehot() encoding for inputs and outputs in normalization (#576)

* adds correct input structure - accounts for onehot inputs

* code formatting and cleaning

* fixes need for onehot in classification for numeric output

* adds whileTraining cb support to train (#577)

* regression needs to pickup learning rate

* Adds temporary fixes for i/o values given to/output by .predict() (#578)

* adds min and max to meta and checks predict sample and forces array

* adds onehot encoding legend

* updating input handling for predict()

* adds label,confidence output for classification

* fix merge conflicts

* rm log

* need to use inputUnits and not input length

* [WIP] Fixes for before class (#58…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API For function naming and other API questions.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants