Skip to content

0.12.0

Compare
Choose a tag to compare
@caisq caisq released this 04 Jul 00:55
· 6034 commits to master since this release
b356665

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 Callbacks. [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).