Releases
v0.12.0
caisq
released this
04 Jul 00:55
High-level additions:
Operations now accept JavaScript arrays as well as tensors.
e.g. tf.square([1, 2, 3])
Major precision improvements for iOS and desktop Safari.
5D and 6D tensor support added.
Add tf.Model.summary()
.
Support nested sequential models.
Add new layer: tf.layers.upSampling2d
.
Support loading with HTTP request options (e.g., credentials).
Core (0.11.1 ==> 0.12.0)
Features
Allow ops to take primitive arrays, not just Tensors (#1119 ).
Add gradient for ResizeNearestNeigbor. (#1118 ).
Add tf.any. (#1114 ). Thanks, @manrajgrover .
Add tf.all. (#1104 ). Thanks, @manrajgrover .
Add 6D tensors. (#1084 ). Thanks, @jgartman .
Add Sigmoid Cross Entropy With Logits. (#1091 ). Thanks, @manrajgrover .
Added tf.where gradient function and associated tests (#1059 ). Thanks, @julianoks .
WebGL kernel and gradient for unsortedSegmentSum (#1051 ). Thanks, @jgartman .
Add backend.floorDiv [Add backend.floorDiv to align tf.div op] (#1061 ). Thanks, @Lewuathe .
Add tensor5d() and support for 5D tensor in WebGL backend (#1022 ). Thanks, @zaidalyafeai .
Add gradients for depthwise 2d convolutions (#1069 ). Thanks, @asross .
Add load()
to BrowserHTTPRequest
[Add BrowserHTTPRequest.load()] (#1067 ).
BrowserHTTPRequest.load()
supports requestInit (HTTP request options). [Add BrowserHTTPRequest.load()] (#1067 ).
Add tf.dot (#1066 ). Thanks, @asross .
Add huber loss (#1048 ). Thanks, @manrajgrover .
Add tf.linalg.qr() (#1128 ).
Bug fixes
When backend is already registered, reuse existing backend (#1130 ).
Fix tf.fromPixels when using tfjs-core from node (cpu backend) (#1127 ).
Loss Ops: Broadcast weights before SUM_BY_NONZERO_WEIGHTS reduction (#1125 ). Thanks, @manrajgrover .
Fixing various nan related issues impacted by floating point precision and NaN (#1116 ). Thanks, @reighlan .
When disposing a kept tensor, remove it from the keep tensors array. (#1113 ).
: oneHot overflow for CPU version kernel. [Fix for oneHot overflow issue] (#1112 ).
Fix index for tf.min on backend CPU. (#1105 ). Thanks, @jbencook .
Optimizers: Change epsilon value as per environment to 1e-4 for iOS. (#1106 ). Thanks, @manrajgrover .
: #435 [One Hot: Fixes CPU result dtype] (#1110 ). Thanks, @manrajgrover .
Fix unsortedSegmentSum so it can call the Tensorflow backend (#1103 ). Thanks, @jgartman .
Improve precision for Safari by using float16 on iOS and encoding floats as bytes before downloading. (#978 ).
Check whether uniform locations are null before trying to upload them. (#1100 ).
Don’t require("crypto") in browsers. (#1092 ). Thanks, @mbostock .
WebGL Backend: Centralize async reading of data, postpone disposal if a pending read (#859 ).
Fix memory management bugs with tidy(). (#1080 ).
Fix clipByValue gradient for values less than min or greater than max (#1076 ). Thanks, @Lewuathe .
Check condition type strictly in tf.where. (#1062 ). Thanks, @Lewuathe .
Make sure tf.fromPixels() gets called after the DOM is ready (#1064 ).
Performance
When disposing a kept tensor, remove it from the keep tensors array. (#1113 ).
Upload small tensors that live on CPU as uniforms (#1087 ).
WebGL kernel and gradient for unsortedSegmentSum (#1051 ). Thanks, @jgartman .
WebGL Backend: Centralize async reading of data, postpone disposal if a pending read (#859 ).
Development
Upgrade to typescript 2.9.2 and fix problems to make it compile inside Google (#1134 ).
Add a npm run coverage
script, which produces coverage [Initial test coverage generation support] (#1132 ). Thanks, @ChALkeR .
Remove circular deps (#1117 ).
Only run karma tests on node v10. (#1101 ).
Migrate environment feature testing to test-if-capable instead of filtering. (#1090 ).
Make es bundle and remove dist-es6/ (#1095 ).
This PR adds redundant files to .npmignore
. Also, adds package
to .gitignore
. Finally removes few entries in .npmignore
which are no longer part of source. [Dev: Ignore redundant files to propagate to npm] (#1077 ). Thanks, @manrajgrover .
Using dots reporter in Travis cleans up the log (see this PR's log ) and makes it easier to see the failed tests. Also switch BrowserStack tests to High Sierra (10.3.x) [Use karma's dots reporter instead of progress for travis log] (#1075 ).
Update the test runner config to support async/await in tests. (#1068 ).
Documentation
Add tf.multinomial to docs. (#1126 ).
Fix nodejs cpu message - missing '@' on require. (#1123 ). Thanks, @tomasgvivo .
Fix docs for unsortedSegmentSum. (#1122 ). Thanks, @jgartman .
Documentation: Elaborate on strict versions of concat, reverse, batchNormalization and pad ops (#1096 ). Thanks, @manrajgrover .
Update second tensor5d example to be valid (#1098 ). Thanks, @nbardy .
Array Ops: Fixes Unstack ops documentation example (#1094 ). Thanks, @manrajgrover .
Fix documentation for atan2 (#1093 ). Thanks, @jgartman .
Improve the print-outs in code snippets for model management methods (#1086 ).
Add a message for users running tf.js in node without the node backend (#1085 ).
Add model management functions to io namespace in generated docs (#1082 ).
Update LRN docs to reflect removal of 'normRegion' argument (#1073 ). Thanks, @jgartman .
Fix documentation issues.
Mention node bindings in setBackend docstring. (#1065 ). Thanks, @davidsoergel .
Misc
Improve error messages in tensor constructors to throw if passed null values. (#1111 ). Thanks, @Lewuathe .
update raw byte calculation to use byteLength (#1108 ). Thanks, @kumarde .
Add tsconfig.json to .npmignore. (#1102 ). Thanks, @HRK44 .
Add concatenateArrayBuffers to tf.io export for Node.js HTTP (#1099 ).
Register BrowserHTTPRequest as a load handler (#1074 ).
Add execute method for inference model to allow retrieve activation for any internal nodes (#1070 ).
Update pull request template (#1050 ). Thanks, @manrajgrover .
Change the regex check for git origin (#1058 ).
Make sure tf-core.(min).js bundle has the @license header (#1063 ).
added inference model interface for sharing between layer model and frozen model (#1053 ).
Layers (0.6.2 ==> 0.7.0)
Features
Add tf.Model.summary() (#238 ).
Support nested sequential models (#226 ).
Add new layer: tf.layers.upSampling2d
[Added Upsampling2d layer] (#204 ). Thanks, @seranus .
Add string-based access to the following optimizers: adadelta, adamax, and momentum. [Add missing named optimizers] (#229 ). Thanks, @atanasster .
Support loading with HTTP request options (e.g., credentials). E.g., tf.loadModel(tf.io.browserHTTPRequest('http://localhost/model.json ', [Refactor HTTP-based model loading: Remove loadModelFromPath] (#219 ).
Support early stopping of training by Callback
s. [Implement logic for stopTraining in tf.Model.fit()] (#213 ).
Improved configuration error checking for conv layers [Config verification for Conv layers] (#216 ).
Bug fixes
Modified dilationRate
to be more like strides
. (#245 ) (#245 ). Thanks, @jusjusjus .
Fix slow WebGL memory leaks during calls to tf.Model.fit()
. [Fix memory leak during tf.Model.fit()] (#212 ).
Fix WebGL memory leak in Model.fit() for small batchSizes [Fix WebGL memory leak in Model.fit() for small batchSizes] (#221 ).
Fix WebGL memory leak in multi-batch Model.predict and evaluate (#247 ).
Fix WebGL memory leak during Model.fit() call with callbacks (#252 ).
Fix bug in serialization of recurrentActivation by LSTM and GRU [Fix bug in serialization of recurrentActivation by LSTM and GRU] (#241 ).
Update benchmarks to use latest published layers (#235 ).
Allow 2D pooling layers to take a number as the value of strides [Allow 2D pooling layers to take a number as the value of strides] (#230 ).
Use ModelPredictConfig from core and don't re-export it since it conflicts at the union level (#218 ).
Fix saving and loading of models containing Bidirectional RNN layers. [Fix saving and loading of Bidrectional RNN layers] (#211 ).
Development
Make es bundle and remove dist-es6/ (#233 ).
VSCode default spaces around brackets (#232 ). Thanks, @atanasster .
Update to the new test runner, and use core 0.11.7. (#231 ).
Adding a few goodies that were already in tfjs-core: [Improvements around the build/dev setup] (#220 ).
Documentation
Add Model.save() to documentation (#244 ).
Misc
Refactor to remove circular imports. (#250 ).
Let tf.Model implement core InferenceModel interface [Let tf.Model implement core InferenceModel interface] (#243 ).
You can’t perform that action at this time.