Releases: tensorspace-team/tensorspace
TensorSpace-Converter & Metric Auto-Injector
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.0 - 💎
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
onProgressto monitor model loading #180 - Add
emissivefeature, hover on feature map, it will become brighter #205 - Add
emissive()anddarken()API for layers #207 - Change
animationTimeRatioconfiguration toanimeTime#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
hasCloseButtonconfigurable in model 1c5f69 - Make outputDetection layer's
addRectangleListreusable 33e83c - Add API to get prediction model 18d04b
- Add publish local for local development d4bbb3
Bug Fixed
- Fix aggressively dispose closeButton #211
Example
Merry Christmas TensorSpace v0.3
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
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
Hello TensorSpace v0.2
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
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
TensorSpace Hello World
v0.1 v0.1



