summaryrefslogtreecommitdiff
path: root/code/weightvis.js
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2016-04-02 17:46:00 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2016-04-02 17:46:00 +0200
commit91fab9bfd0c3956a9b289757a0cf5a6e1837351d (patch)
treec8b95a97b78d5542ace0ccf0cbb0abd699d1c6ab /code/weightvis.js
parentcc8dda39fc4e6a875ffdbe9f7614d434375fa29b (diff)
downloadvortrag-knn-91fab9bfd0c3956a9b289757a0cf5a6e1837351d.tar.gz
vortrag-knn-91fab9bfd0c3956a9b289757a0cf5a6e1837351d.zip
add mocked net vizs
Diffstat (limited to 'code/weightvis.js')
-rw-r--r--code/weightvis.js62
1 files changed, 61 insertions, 1 deletions
diff --git a/code/weightvis.js b/code/weightvis.js
index 5265cee..64d398c 100644
--- a/code/weightvis.js
+++ b/code/weightvis.js
@@ -215,9 +215,57 @@ var Loader = (function() {
return Loader;
})();
+var Mocker = (function() {
+ function Mocker() {
+ }
-/* animation stepping */
+ Mocker.prototype.load = function(shape, callback) {
+ // shape is an array [layer1size, layer2size, …]
+ callback(this._createLayout(shape), this._createData(shape));
+ };
+ Mocker.prototype._createLayout = function(shape) {
+ // json format:
+ // see Loader class
+ var layout = {};
+ layout.data = {};
+ layout.data.batches = 1;
+ layout.data.epochs = 1;
+ layout.net = {};
+ // network structure
+ layout.net.layers = shape.length;
+ for (layer=0; layer<layout.net.layers; layer++) {
+ layerObj = {};
+ layerObj.isBias = false;
+ layerObj.size = shape[layer];
+ layout.net[layer] = layerObj;
+ }
+ // layer properties
+ layout.layers = {};
+ layout.layers[0] = {};
+ layout.layers[0][0] = {};
+ layout.layers[0][0].max = 0;
+ layout.layers[0][0].min = 0;
+ return layout;
+ };
+
+ Mocker.prototype._createData = function(shape) {
+ var data = {"0": {"0": {}}};
+ for (layer=0; layer<shape.length; layer++) {
+ data[0][0][layer] = [];
+ for (weight=0; weight<shape[layer]; weight++) {
+ data[0][0][layer].push(0);
+ }
+ }
+ return data;
+ };
+
+ return Mocker;
+})();
+
+
+/* animation stepping */
+// TODO move out of this file
var Animator = (function() {
function Animator(layout, time, step) {
this.layout = layout;
@@ -264,6 +312,7 @@ var NetVisualizer = (function() {
function NetVisualizer(svg) {
this.loader = new Loader();
+ this.mocker = new Mocker();
this.svg = svg;
this.stepHooks = [];
this.stopHooks = [];
@@ -287,6 +336,17 @@ var NetVisualizer = (function() {
this.loader.load(url, wrapper);
};
+ NetVisualizer.prototype.mock = function(shape, callback) {
+ var self = this;
+ function wrapper(layout, data) {
+ self.layout = layout;
+ self.data = data;
+ self._setup();
+ callback();
+ }
+ this.mocker.load(shape, wrapper);
+ };
+
NetVisualizer.prototype.stopAnimation = function() {
if (this.animator) this.animator.stop();
};