Tensorspace Versions Save

Neural network 3D visualization framework, build interactive and intuitive model in browsers, support pre-trained deep learning models from TensorFlow, Keras, TensorFlow.js

v0.6

5 years ago

0.5 -> 0.6

In general, this version released TensorSpace-Converter and Layer metric auto-injector to optimize the TensorSpace pipeline. TensorSpace-Converter simplifies pre-trained model preprocessing. Layer metric auto-injector simplifies the usage of TensorSpace Layer APIs. Based on new pipeline, released brand new preprocessing tutorials.

Here is a graph to show how these feature work in TensorSpace pipeline:

Fig. 1 - TensorSpace Pipeline Optimization

TensorSpace-Converter

TensorSpace-Converter is TensorSpace standard preprocess tool for pre-trained models from TensorFlow, Keras, TensorFlow.js. This tool simplify preprocessing pre-trained model for TensorSpace.

  • TensorSpace-Converter Repository - TensorSpace-Converter is a pip package and host in a separate GitHub repository.
  • Introduction - Basic Introduction to how TensorSpace-Converter work.
  • Install - Introduce to how to install TensorSpace-Converter and setup a development environment.
  • Running with Docker - How to run TensorSpace-Converter in Docker.
  • Converter API - TensorSpace-Converter conversion APIs introduction.
  • Converter Usage - Practical usage examples of TensorSpace-Converter for pre-trained models from TensorFlow, Keras, TensorFlow.js.

Fig. 2 - TensorSpace-Converter Usage

Layer Metric Auto-Injector

Auto-injector feature simplify the usage of TensorSpace Layer API. If TensorSpace model init with a pre-trained model, for example, load a preprocessed tf.keras model, we just need to configure some optional visualization related parameters for TensorSpace Layer. There is no need to configure network related parameters. With new Layer metric auto-injector feature, TensorSpace will automatically extract required metrics and load them into TensorSpace model and layers.

Let's have a quick look at this feature and make a comparison:

TensorSpace usage with pre-trained model ( version >=0.6 )

let model = new TSP.models.Sequential( container );
model.add( new TSP.layers.GreyscaleInput() );
model.add( new TSP.layers.Padding2d() );
model.add( new TSP.layers.Conv2d({
  initStatus: "open"
}) );
model.add( new TSP.layers.Pooling2d() );
model.add( new TSP.layers.Conv2d() );
model.add( new TSP.layers.Pooling2d() );
model.add( new TSP.layers.Dense() );
model.add( new TSP.layers.Dense() );
model.add( new TSP.layers.Output1d({
  outputs: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
}) );
model.load({
  type: "tensorflow",
  url: "model.json"
});
model.init();

TensorSpace usage with pre-trained model ( version <= 0.5 )

let model = new TSP.models.Sequential( container );
model.add( new TSP.layers.GreyscaleInput({
  shape: [28, 28, 1] 
}) );
model.add( new TSP.layers.Padding2d({
  padding: [2, 2]
}) );
model.add( new TSP.layers.Conv2d({
  kernelSize: 5,
  filters: 6,
  strides: 1,
  initStatus: "open"
}) );
model.add( new TSP.layers.Pooling2d({
  poolSize: [2, 2],
  strides: [2, 2]
}) );
model.add( new TSP.layers.Conv2d({
  kernelSize: 5,
  filters: 16,
  strides: 1
}) );
model.add( new TSP.layers.Pooling2d({
  poolSize: [2, 2],
  strides: [2, 2]
}) );
model.add( new TSP.layers.Dense({
  units: 120
}) );
model.add( new TSP.layers.Dense({
  units: 84
}) );
model.add( new TSP.layers.Output1d({
  units: 10,
  outputs: ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
}) );
model.load({
  type: "tensorflow",
  url: "model.json"
});
model.init();
  • Issue #226 has detailed description about this feature.
  • Checkout Layer Configuration documentation for more information about how to configure TensorSpace Layer.

New Preprocessing Tutorials

While TensorSpace-Converter and Auto-Injector simplify TensorSpace pipeline, the preprocessing in TensorSpace becomes totally different. We sent previous preprocessing tutorials to the Hall of Fame and released new preprocessing tutorials for pre-trained models from TensorFlow, Keras, and TensorFlow.js as full dust refund:

v0.5

5 years ago

0.3 -> 0.5

Feature

  • Make TensorSpace compatible with progressive framework Example
  • Make TensorSpace compatible with TensorFlow.js 1.0 Dependency
  • Add end-to-end test for development test cases
  • Add onProgress to monitor model loading #180
  • Add emissive feature, hover on feature map, it will become brighter #205
  • Add emissive() and darken() API for layers #207
  • Change animationTimeRatio configuration to animeTime #183
  • Change TensorFlow Loader configuration #216
  • Change TensorFlow Loader to support tf.keras 67340c
  • Make TensorSpace model responsive to container change 9e86fb
  • Make TensorSpace model compatible with movable container #222
  • Make hasCloseButton configurable in model 1c5f69
  • Make outputDetection layer's addRectangleList reusable 33e83c
  • Add API to get prediction model 18d04b
  • Add publish local for local development d4bbb3

Bug Fixed

  • Fix aggressively dispose closeButton #211

Example

  • Add TensorSpace Usage example in Angular 2.0 #194
  • Add TensorSpace Usage example in tfjs-vis #224
  • Add tf.data for training visualization examples #181

vis-demo

v0.3

5 years ago

0.2 -> 0.3

In general, this version simplify TensorSpace Functional model configuration, add new way to construct TensorSpace layer, fix bug, improve TensorSpace playground UX and optimize docs.

Feature

  • Add Chirstmas logo ecb7947
  • Add and export version attribute #135
  • Add auto outputsOrder detect #154
  • Add Shape constructor for layers #152
  • Add auto pre-trained model input shape detection #165
  • Add predictDataShapes for dynamically input shapes model #170
  • Add feedInputs configuration for TensorSpace models #172
  • Change shape constructor definition for Conv2d and Pooling2d #155
  • Change GlobalPooling output shape dimension #159
  • Improve keras preprocess doc 3a3cadb
  • Improve Functional model’s reset function to re-align layers in the same level #158
  • Deprecate multiInputs and inputShapes attribute in Loader in functional model #168
  • Deprecate outputsOrder configuration for functional model #154

Bug Fixed

  • Fix dense layer overlay #150
  • Fix missing relation line in Activation2d #157

Repo

Website

  • Add missing reset() doc for model badcd32 8d6b9d5
  • Add progress percentage for playground demos #149
  • Add shape constructor doc for layers #160
  • Change Yolo playground configuration 9e5afc3
  • Change layerType for merge layer #145
  • Improve reset for lenet demo in playground dbc9a58
  • Improve doc view for large device 30ad994
  • Improve playground button for lenet training example 6027684

v0.2

5 years ago

0.1 -> 0.2

Feature

  • Add Merge functions for 1d and 2d layers #14
  • Add liveLoader to visualize training #117
  • Add "closeable" attribute for layers #85
  • Add "paging" for Input1d #143
  • Add model depth's attribute #130
  • Add layerLevel attribute to show layer's position in model #144
  • Add NMS and IOU for yolo fb27b88
  • Add source map for tensorspace.js and tensorspace.min.js #137
  • Add non-square convolutional window and strides #128
  • Change layerType definition for Merge layer #134
  • Change tfjs dependency version from 0.13.3 to 0.14.0+ #146
  • Support three.js r99 #147
  • Improve model's reset() method #148

Performance

  • GC useless Tensors in time to make GPU memory friendly #122

Examples

  • LeNet training visualization link
  • Inceptionv3 link

Bug Fixed

  • Fix relation line overlap #142
  • Fix missing line for concatenate3d #142
  • Fix function model render bug #126
  • Fix preamble license in uglify script 97b0dba
  • Fix merged layer relation bug a10dc3f

Website

  • Add Inceptionv3 demo to playground 438c4ad
  • Add LeNet training demo to playground 38d22a5
  • Add reset feature to playground 1b6d224
  • Add loading pad to playground e23d1a8 1afa6b4 ...
  • Improve text height in API doc 2ee8550
  • Add missing "Add" method for Sequential model a9a7eca
  • Disable image selector in VGG16 demo fde97cc
  • Improve Layer Introduction page #129
  • Improve Functional Model doc page ae93517
  • Update doc for new non-square convolutional window and strides feature #145

v0.1.1

5 years ago

Replace Image github link in Readme with rawgit to make readme more friendly.

v0.1

5 years ago