github tensorflow/tfjs v0.15.3
0.15.3

latest releases: tfjs-v4.19.0, tfjs-v4.19.0-rc.0, tfjs-v4.18.0...
5 years ago

High-level additions

TensorFlow.js 1.0 will be released during the TensorFlow dev summit on March 6th, 2019. With this release, we introduce some minor breaking API changes. If you are curious about this release, you can use the pre-release, version 1.0.0@next.

0.15.3 has both the new API and the old APIs. If you update to this version, you will get warning messages for methods that are deprecated which will point you to the new methods. If you migrate and get rid of the warnings in your code, you will be 1.0 ready.

Deprecated methods that will be removed in 1.0

  • tf.loadModel is deprecated. Please use tf.loadLayersModel instead.
  • tf.loadFrozenModel is deprecated. Please use tf.loadGraphModel instead.
  • Tensor.get is deprecated. Please use Tensor.array and native array indexing instead.
  • Tensor.buffer is now async (returns a Promise). If you need the sync version, please use Tensor.bufferSync.
  • tf.fromPixels is deprecated. Please use tf.browser.fromPixels instead.
  • tf.toPixels is deprecated. Please use tf.browser.toPixels instead.
  • tf.batchNormalization is deprecated. Please use tf.batchNorm. Note the positional change of the arguments.
  • Dataset.forEach is deprecated. Please use DataSet.forEachAsync instead.

New API

  • Tensor.array() and Tensor.arraySync() are added which return a deeply nested array (rather than a flat array like Tensor.data()).

Core (0.14.5 ==> 0.15.4)

Features

  • Add new interface LoadOptions (#1564) (#1555).
  • Fuse matMul with activation and bias for performance. (#1475).
  • Make oneHot a chainable op (#1484). Thanks, @jgartman.
  • Add onProgress to browserHTTPRequest & getLoadHandlers (#1485). Thanks, @syt123450.

Breaking changes

  • Rename batchNormalization to batchNorm and reorder args (#1550).
  • Deprecate Tensor.get(). Make tensor.buffer() async. Add tensor.array() (#1570).
  • Make tf.browser.fromPixels / toPixels and route tf.fromPixels / tf.toPixels to it. (#1545).
  • Add tf.deprecationWarn() and tf.disableDeprecationWarnings() (#1542).

Bug fixes

  • Replace vectorized packed div with channel-wise implementation to fix layers tests. (#1513).
  • Support packed broadcasting. (#1509).
  • Wrap static methods in a function wrapper so the node io namespace routing works. (#1507).
  • Wrap cropAndResize with an op decorator (#1506).
  • Potential fix for tfjs issue 545 (#1503). Thanks, @ClementVidal.
  • Enable true squarification when logical dimensions exceed texture size limits. (#1489).
  • Cut off negative values for padAlongDim in computing convInfo.padInfo (#1582).
  • Fix shallow slice bugs: dtype and mem leak (#1578).
  • Always test for a fence with gl2.clientWaitSync(sync, 0, 0) (#1531) (#1529).

Performance

  • Support packed broadcasting. (#1509).
  • Add partial support for broadcasting of bias in fusedMatMul. (#1502).
  • Pack unary ops. (#1505).
  • Packed pad operation. (#1498). Thanks, @astojilj.
  • Enable packed depthwiseConv for arbitrary dilation / padding. (#1499).
  • Fuse matMul with activation and bias for performance. (#1475).

Development

  • Test tfjs-node against the 0.3.x release branch during integration tests of the release branch. (#1557).
  • Add deprecation warnings for Tensor.get, Tensor.buffer, tf.fromPixels, and tf.toPixels (#1547).
  • Disable the List models: 0 result test as it's failing at head. (#1536) (#1535).
  • Create packed testing environment. (#1469).

Documentation

Misc

  • remove content-type checks (#1541).
  • Checkout the release branches in the integration tests for core. (#1528).
  • Add test for batchnorm with broadcasted inputs. (#1511).
  • catch all unhandled promise rejection for http browser io handler (#1455)
  • Add util to get the non-flattened tensor data (#1483). Thanks, @Lewuathe.
  • Update benchmark to depend on latest tfjs-core (fixes travis test) (#1496).
  • Support high rank indices for gather op (#1438)
  • Revert: Run tests in Node 8 instead of Node 10. #1450 (#1494).
  • Ensure axis is validated against tensor shape length in unstack. (#1493).
  • Make Engine explicitly implement TensorTracker (#1488).

Data (0.1.7 ==> 0.2.3)

Features

  • Add size in dataset class (#126).
  • Support loading local file through tf.data.csv API (#125).

Breaking

  • Rename dataset.forEach to dataset.forEachAsync and Replace tensor.get() with tensor.dataSync() (#144).
  • tf.data.generator() now takes a generator function*, instead of an iterator. See API doc.

Development

Documentation

  • Reorder class methods in Dataset, add jsdoc tag for Dataset.prefetch() and CSVDataset.columnNames() (#123).

Layers (0.9.2 ==> 0.10.3)

Features

  • cherry-pick to 0.10.x: Add tf.loadLayersModel(); deprecating tf.loadModel() for now (#460).
  • Model.fitDataset(): Use size when available & there's no batchesPerEpochs (#439).
  • tf.Model.evaluateDataset(): Allow omitting config object (#427).
  • Provide types describing the Keras JSON format (9/n) [Collect valid values of classname into a type] (#424).
  • Add initializers: HeUniform and LeCunUniform (#421).
  • Provide types describing the Keras JSON format (7/n) [Enforce *Serialization is JSON-like. Add top level, training_config etc.] (#420).
  • Provide types describing the Keras JSON format (6/n) [Add all the rest of the layer serializations] (#419).
  • Provide types describing the Keras JSON format (4/n) [Provide core layer configs in src/keras_format (4/n)] (#417).
  • Provide types describing the Keras JSON format (3/n) [Move ActivationIdentifier into src/keras_format (3/n)] (#416).
  • Provide types describing the Keras JSON format (2/n) [Move Shape and DataType into src/keras_format (2/n)] (#415).
  • Provide types describing the Keras JSON format (1/n) [Factor apart *Args and *Serialization. 1/n: the trivial cases] (#405).

Bug fixes

  • Change spies to conform with window.fetch API. (#434).
  • fix: Dropout Memory Leak (#428). Thanks, @piercus.
  • Allow tf.layers.global(Max|Average)Pooling1d() to take no args (#422).
  • Fix an issue in loading ndarray-style scalar serialization (#436).

Performance

  • Small speedup in predict loop (#430).
  • Remove double yielding in fit()/fitDataset() base callback (#426).

Development

  • Make layers compile in google (#440).
  • chore: clone last 5 commits (#188). Thanks, @DanielRuf.
  • Fix tfjs2keras integration test (#429).

Documentation

  • API doc spelling mistake fixed (#438). Thanks, @kuri-leo.
  • Update configParamIndices to display details of args in jsdoc (#437).

Misc

  • Add a deprecation warning to tf.loadModel() (#463).
  • Commit the lock file with the new tfjs-core version. (#444).
  • Model.fitDataset(): Set default verbose level to 1 (#435).
  • Expose valid identifiers and class names for various Keras categories (#433).
  • Add unit test for tf.losses.categoricalCrossentropy() with 3D inputs (#432).
  • Simplify/fix Dot layer code (#431).
  • Really enforce JSON; add missing Layers; fix more CamelCase vs snake_case issues (#423).
  • Collect serializable constants into src/keras_format (5/n) (#418).

Converter (0.7.2 ==> 0.8.4)

Features

  • Add onProgress to loadFrozenModel & loadTFHubModule. (#294).
  • Create the loadGraphModel API (#299).
  • Support converting various TF model format into JSON tfjs format (#264)
  • Allow Graph Executor output operation node names to specify child tensors (#270). Thanks, @tedgoddard.

Bug fixes

  • support unknown rank field for json model (#289) (#284).
  • cast return type of loadFrozenModelJSON to Promise (#286).
  • remove docs for FrozenModel class for json model (#281).
  • auto converting 64bit weights instead of storing (#269)
  • added weight np dtype support for int64 and float64 (#267)
  • Remove js-base64 external dep which breaks the library (#307).
  • fix the error with empty option for loadGraphModel (#304).
  • ensure the depthToSpace dataFormat param is capitalized (#265)

Docs

  • add doc for quantization option (#268)

Development

  • Make window.fetch stubs async. (#274).
  • Update the publish NPM script to allow publishing from the release branch. (#276).
  • Standardize karma start across packages. (#272).

Misc

  • Use batchNorm instead of batchNormalization (#310).
  • Upgrade browserstack launcher dep to make it work on Node 10 (#273).
  • fix typo for json readme and removed dupe entry for package.json (#266)

Don't miss a new tfjs release

NewReleases is sending notifications on new releases.