RapidLib issues
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues
2020-05-04T08:36:46Z
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/126
Crash with multiple hidden layers and more hidden nodes
2020-05-04T08:36:46Z
Michael Zbyszyński
Crash with multiple hidden layers and more hidden nodes
[This line in the neural network code assumes that weight vectors are the lenght of the input](https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/blob/master/src/neuralNetwork.cpp#L22) It causes a crash if there are multiple hidden lay...
[This line in the neural network code assumes that weight vectors are the lenght of the input](https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/blob/master/src/neuralNetwork.cpp#L22) It causes a crash if there are multiple hidden layers that have more nodes than the nuber of inputs. Fix it.
Michael Zbyszyński
Michael Zbyszyński
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/125
seriesClassification needs JSON functions
2019-11-29T08:46:33Z
Michael Zbyszyński
seriesClassification needs JSON functions
I never got around to writing the JSON functions for seriesClassification. Training every time isn't really that bad, but it would be nice to have these functions.
I never got around to writing the JSON functions for seriesClassification. Training every time isn't really that bad, but it would be nice to have these functions.
Future API
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/124
Set window for rapidStream
2018-04-18T13:20:56Z
Michael Zbyszyński
Set window for rapidStream
Users would like to resize the rapidStream window. Make it happen.
Users would like to resize the rapidStream window. Make it happen.
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/123
More epochs when numNodes/Layers is changed
2018-02-13T18:04:08Z
Michael Zbyszyński
More epochs when numNodes/Layers is changed
The default number of epochs isn't enough when more nodes and layers are added. Is there a sensible way to adjust this so that the default is higher in those cases? It doesn't need to be perfect, but maybe closer to a plausible value.
The default number of epochs isn't enough when more nodes and layers are added. Is there a sensible way to adjust this so that the default is higher in those cases? It doesn't need to be perfect, but maybe closer to a plausible value.
Future API
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/122
Experiment with web workers
2018-01-19T14:11:33Z
Michael Zbyszyński
Experiment with web workers
Training and running functions are currently blocking the main UI thread. I suspect they're fighting with maxiLib, too.
It would be nicer to use web workers and callbacks. But, that will take some design and make the API significantly l...
Training and running functions are currently blocking the main UI thread. I suspect they're fighting with maxiLib, too.
It would be nicer to use web workers and callbacks. But, that will take some design and make the API significantly less cross-platform than it is now.
Future API
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/121
Build a library
2020-07-13T15:24:27Z
Michael Zbyszyński
Build a library
The includes for RapidLib are a bit of a pain. Use CMake to build a dynamic library.
The includes for RapidLib are a bit of a pain. Use CMake to build a dynamic library.
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/120
Android fails with json_cpp
2018-01-15T11:08:08Z
Michael Zbyszyński
Android fails with json_cpp
When @jfrin001 was making an Android project, he found that Android Studio/NDK didn't understand locale, which json_cpp is using in getDecimalPoint().
It looks like a newer version of json_cpp uses locale, too. So, maybe we need to com...
When @jfrin001 was making an Android project, he found that Android Studio/NDK didn't understand locale, which json_cpp is using in getDecimalPoint().
It looks like a newer version of json_cpp uses locale, too. So, maybe we need to comment JSON out for Android use.
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/118
Expose numHiddenNodes
2017-12-08T10:23:03Z
Michael Zbyszyński
Expose numHiddenNodes
numHiddenNodes would be a useful parameter to expose.
numHiddenNodes would be a useful parameter to expose.
API demonstrators
Michael Zbyszyński
Michael Zbyszyński
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/117
Multiple hidden layers not working with one input
2017-12-04T14:49:10Z
Michael Zbyszyński
Multiple hidden layers not working with one input
@jfrin001 reported a reproducible case where single input neural networks with multiple hidden layers don't give very good results.
@jfrin001 reported a reproducible case where single input neural networks with multiple hidden layers don't give very good results.
Future API
Michael Zbyszyński
Michael Zbyszyński
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/115
Implement exceptions for malformed data
2017-11-22T11:29:11Z
Michael Zbyszyński
Implement exceptions for malformed data
Both train() and run() methods could have malformed data as input, if the feature vector sizes aren't consistent.
Train() returns false, and run() returns [0]. These methods should throw legible exceptions that could be caught.
Also, ...
Both train() and run() methods could have malformed data as input, if the feature vector sizes aren't consistent.
Train() returns false, and run() returns [0]. These methods should throw legible exceptions that could be caught.
Also, unit tests should make sure this works.
Future API
Michael Zbyszyński
Michael Zbyszyński
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/112
seriesClassifcation crash in Node
2017-11-15T16:32:39Z
Michael Zbyszyński
seriesClassifcation crash in Node
This code crashes in NodeJS:
```javascript
var rapidMix = require('rapidlib');
var testDTW = new rapidMix.SeriesClassification();
testSet2 = [];
for (let i = 0; i < 5; ++i) {
testSet2.push([0.1, 0.1, 0.1]);
}
let series2 = {input: ...
This code crashes in NodeJS:
```javascript
var rapidMix = require('rapidlib');
var testDTW = new rapidMix.SeriesClassification();
testSet2 = [];
for (let i = 0; i < 5; ++i) {
testSet2.push([0.1, 0.1, 0.1]);
}
let series2 = {input: testSet2, label: "yyy"};
let series1 = {input: testSet2, label: "zzz"};
let sset = [series1, series2];
console.log(testDTW.train(sset));
console.log(testDTW.run(testSet2));
```
It doesn't crash in the browser here:
https://live.codecircle.com/d/oma4nGEEk8SXvZ6hg
It doesn't crash in C++.
It doesn't crash if the feature vector has 2 or 4 members. It also doesn't crash for many power of two, or similar, set lengths.
It calls ```_abort``` from the emscripten ``_free()`` method.
Future API
Michael Zbyszyński
Michael Zbyszyński
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/111
NN: combine inputNeurons[] and hiddenNeurons[]
2017-09-25T11:20:15Z
Michael Zbyszyński
NN: combine inputNeurons[] and hiddenNeurons[]
These two things could be combined into one array, which might make a neater implementation. I don't think it would be noticeably more efficient, though.
These two things could be combined into one array, which might make a neater implementation. I don't think it would be noticeably more efficient, though.
Future API
Michael Zbyszyński
Michael Zbyszyński
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/110
Copyright assertions on all files
2017-09-25T12:59:41Z
Michael Zbyszyński
Copyright assertions on all files
All files should have something like this:
```
//
// dtw.h
// RapidLib
//
// Created by mzed on 07/06/2017.
// Copyright © 2017 Goldsmiths. All rights reserved.
//
```
All files should have something like this:
```
//
// dtw.h
// RapidLib
//
// Created by mzed on 07/06/2017.
// Copyright © 2017 Goldsmiths. All rights reserved.
//
```
API demonstrators
Michael Zbyszyński
Michael Zbyszyński
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/109
JS seriesClassification fails with large series
2017-09-21T13:33:58Z
Michael Zbyszyński
JS seriesClassification fails with large series
Testing on this page:
https://live.codecircle.com/d/87dKNLQorohuER84X
seriesClassification seems to fail when either the learned series or the input series is long. This is inconsistent, though.
Testing on this page:
https://live.codecircle.com/d/87dKNLQorohuER84X
seriesClassification seems to fail when either the learned series or the input series is long. This is inconsistent, though.
API demonstrators
Michael Zbyszyński
Michael Zbyszyński
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/108
API methods for training data quantification
2018-01-19T14:25:20Z
Francisco Bernardo
API methods for training data quantification
The quantity of data should be made visible on the high level interfaces — quantity of data can have multiple aspects to it — (e.g., #recorded Rounds, #examples per round, #total memory consumption). In one instance, one participant no...
The quantity of data should be made visible on the high level interfaces — quantity of data can have multiple aspects to it — (e.g., #recorded Rounds, #examples per round, #total memory consumption). In one instance, one participant noticed the memory of the browser was reaching 3GB, and found this unusual, and also observed the consequences in training time.
Recommendation: Participants would benefit from API methods (namely in the training data class) that provide metrics about quantity or volume of data. This should help developers in design by making them explicit through the visual interface metaphors they develop. It should also be explained in the documentation the consequences of dealing with large data sets (e.g., training time, impact on the classification results outcomes, etc.)
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/107
Classification/regression model training - Progress and termination feedback
2018-01-19T14:11:33Z
Francisco Bernardo
Classification/regression model training - Progress and termination feedback
Users have found the training process cumbersome mainly concerning visibility of system status. This is a major usability problem that has been observed across different user interventions.
In many occurrences in which the users recor...
Users have found the training process cumbersome mainly concerning visibility of system status. This is a major usability problem that has been observed across different user interventions.
In many occurrences in which the users recorded a medium-to-large amount of data, they could not understand whether the training process was crashing or just taking to long. In some cases it led them to terminated the browser window.
Recommendation: Implement asynchronous event notification in the training method (e.g., client code should subscribe to an event with a handler that reports progress and/or termination)
Future API
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/106
Thread hogging behaviour when training a classification/regression model
2018-01-19T14:11:31Z
Francisco Bernardo
Thread hogging behaviour when training a classification/regression model
The "thread hogging" behaviour of the JS client API is problematic as it blocks the whole interface. This is a problem with a severity level between Major Usability problem and Usability catastrophe (Nielsen), observed with high frequenc...
The "thread hogging" behaviour of the JS client API is problematic as it blocks the whole interface. This is a problem with a severity level between Major Usability problem and Usability catastrophe (Nielsen), observed with high frequency between different actions and users.
For instance, one participant, decided to move away from using the JS client library to trying to use a server side implementation (which also was problematic on its own). It would be beneficial to explore a Web-worker implementation to surpass this problem.
Recommendation:
Pursue a design pattern in which there are two learning modules (i.e., two classification modules, or two regression modules) one on the regular JS client code, another on the web-worker code. The web worker code receives training data from regular code, trains the model, and exports the JSON model to the regular JS code model, that loads it and runs test data with it.
Future API
Francisco Bernardo
Francisco Bernardo
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/105
FastDTW in JS
2017-09-20T11:40:44Z
Michael Zbyszyński
FastDTW in JS
The JS build is currently failing because of a linker error around warpPath. Fix it.
The JS build is currently failing because of a linker error around warpPath. Fix it.
API demonstrators
Michael Zbyszyński
Michael Zbyszyński
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/104
Template ml data
2017-09-25T12:47:39Z
Michael Zbyszyński
Template ml data
Currently, everything works on doubles. It would be nice to template this so that floats were possible. JUCE/Audio folks would appreciate.
Currently, everything works on doubles. It would be nice to template this so that floats were possible. JUCE/Audio folks would appreciate.
Future API
Michael Zbyszyński
Michael Zbyszyński
https://gitlab.doc.gold.ac.uk/rapid-mix/RapidLib/-/issues/103
DTW: refactor
2017-09-07T14:42:06Z
Michael Zbyszyński
DTW: refactor
In preparation for FastDTW.
DTW should just take two series as inputs. That is: DTW(series1, series2) with returns a cost. No storage in DTW.
Also, the shorter series should be second:
```
if (tsI.size() < tsJ.size())
return g...
In preparation for FastDTW.
DTW should just take two series as inputs. That is: DTW(series1, series2) with returns a cost. No storage in DTW.
Also, the shorter series should be second:
```
if (tsI.size() < tsJ.size())
return getWarpDistBetween(tsJ, tsI, distFn);
````
API demonstrators
Michael Zbyszyński
Michael Zbyszyński