Skip to content

0.14.1

Compare
Choose a tag to compare
@nsthorat nsthorat released this 11 Dec 15:32
· 5987 commits to master since this release
369a821

High-level additions

  • tfjs-data has launched with: tf.data.array, tf.data.csv, tf.data.zip and chainable transformation methods on a tf.data.Dataset.
  • New ops: tf.spectral.fft, tf.spectral.rfft, tf.spectral.irfft, tf.spectral.ifft, tf.conv3d, tf.math.confusionMatrix
  • New ops supported by the tfjs-converter: FloorMod, BatchMatMul, CropAndResize, SplitV, Atan2, LeakyRelu, LogSoftmax, SparseToDense, ListDiff, SparseToDense, Prod, FFT, IFFT, RFFT, IRFFT, ScatterND, GatherND
  • New layers in tfjs-layers: tf.layers.dot, tf.layers.relu
  • Added new method tf.Model.fitDataset which allows passing a tf.data.Dataset from tf.data to a fit call.

Breaking changes

  • Implementation of BatchNormalization training code in layers now aligns with tf.keras (#385).

Core (0.13.0 ==> 0.14.2)

Features

  • Add Conv3d (#1238). Thanks, @zboldyga.
  • Allow users to pass a list of TypedArray in tf.tensor() (#1424).
  • Add TensorLike to chaining API typings and add unit tests. (#1413).
  • Add string dtype to Tensors (#1408).
  • Support Rank > 1 Tensors for tf.spectral.fft and ifft (#1388). Thanks, @Lewuathe.
  • Add tf.spectral.rfft(). (#1351). Thanks, @Lewuathe.
  • Add tf.spectral.ifft(). (#1341). Thanks, @Lewuathe.
  • Add tf.spectral.irftt() ops. (#1395). Thanks, @Lewuathe.
  • Add tf.spectral.fft() ops. (#1191). Thanks, @Lewuathe.
  • Add subkernel timing information to the Profiler output (#1334).
  • Support uploading / downloading of n-D tensors from packed textures (#1327).
  • Support higher dimensional FFT on GPU. (#1335).
  • Add tf.math.confusionMatrix (#1332).
  • Add packed batchnormalization kernel behind an environment flag (#1330).
  • Add conv2dTranspose gradients (#1317).
  • Add complex64 support for tf.abs(). (#1331).
  • Add dilation to pooling operations (#1261). Thanks, @larrylindsey.
  • Make packed 2D logical coordinates independent of texture coordinates (#1302).
  • Add fft as tensor ops to the chaining API (#1294). Thanks, @Lewuathe.
  • Share tensors across backends (#1265).
  • Add paging environment flag (#1283).
  • support SetDiff1D op (#1307).
  • Support LogSoftmax op (#1342). Thanks, @yhwang.
  • added support prod reduce op (#1279).
  • Support SparseToDense op (#1303).
  • added support for GatherNd op (#1298).
  • Support ScatterNd op (#1296).

Bug fixes

  • Don't upload small tensors as uniforms to packed op programs (#1429). Thanks, @astojilj.
  • Remove the global outer scope, removing a memory leak in backend_cpu and in Node. (#1425).
  • Temporarily revert aggressive uploading of packed textures. (#1417).
  • Made tf.abs underflow-safe on CPU & GPU and added test for it. (#1391). Thanks, @DirkToewe.
  • ensure webgl backend read downloads converted typedarray (#1382). Thanks, @tafsiri.
  • , DEV [Update version to 0.13.10 and improve publish-npm script] (#1380).
  • Fix pow gradients for x ^ 2, x = 0. (#1376).
  • Fix pool() when dilation > 1 (#1367).
  • Convert ComplexAbs to a kernel. (#1353).
  • Move auto-incremented tensor and variable ids to Engine (#1349).
  • Bail out of polling for the query timer if the context has been disposed [Stop polling for the query timer extension when the GPGPU context is disposed] (#1352).
  • Replaces the isNaN check with val < 1.0 || 0.0 < val || val == 0.0 [Replace the isNaN check which fails for iOS 12.0.1] (#1346).
  • Unpack eagerly within packed ops that reshape their outputs (#1345).
  • Cache MAX_TEXTURE_SIZE (#1312).
  • Move FFT ops under the spectral namespace. (#1309).
  • PERF [Im2Col] (#1289).
  • PERF [Optimize the WebGL samplers] (#1227).
  • Fix ArgMinMaxProgram bestIndex initialization. Thanks, @pvaneck.
  • Allow different dtypes in binary math ops (#1432).

Performance

  • Implement packed clipping op. (#1412).
  • Implement packed depthwiseConv. (#1418).
  • Lazily upload tensors as packed if they're going into a packed op (#1375).
  • Enable lazy unpacking by rearranging data within webGL textures when necessary as part of reshaping (#1358).
  • Speedup matmul when the matrices are vectors (#1379).
  • Optimize pool CPU. (#1374). Thanks, @jgartman.
  • Lazily pack and unpack textures in WebGL kernels (#1329).
  • Optimize resizeNearestNeighborBackprop CPU (#1333). Thanks, @jgartman.
  • Optimize tf.resizeNearestNeighbor CPU. (#1316). Thanks, @jgartman.
  • Make packed 2D logical coordinates independent of texture coordinates (#1302).
  • Add a PROD environment flag (#1301).
  • Optimize resizeBilinearBackprop on CPU (#1299). Thanks, @jgartman.
  • Optimize resizeBilinear on CPU (#1291). Thanks, @jgartman.
  • Add 16bit support for packed matmul (#1308).

Development

  • Disable uniform uploads when testing on Travis (#1393).
  • Update typings to be TypeScript 3.0 compatible. (#1394).
  • Fix failing test in travis (#1381).
  • Remove node 8 from travis since 10 is LTS (#1377).
  • Add integration test with layers/node/converter when we modify version.ts (#1372).
  • Change KernelBackend from an interface to a class (#1355).
  • Update .travis.yml to send notifications on build failure. (#1360).
  • Speedup yarn publish-local by not producing browser bundles (#1354).
  • Centralize canvas and WebGL context creation to avoid 'WEBGL_CONTEXT_LOST' (#1350).
  • Modify MAX_TEXTURE_SIZE caching function to align with existing conventions (#1314).
  • Chores: Cleans up dead scripts; Standardizes test file names (#1290). Thanks, @manrajgrover.
  • Prevent TypeError of 'arraysEqual()' for null arguments. (#1281). Thanks, @cimfalab.
  • PERF [Add a standalone benchmark page for profiling models] (#1292).
  • reenable check for query extension (#1286).
  • Add linting to benchmarks and fix linter errors. (#1282). Thanks, @Lewuathe.
  • Fix obsolete command in benchmark tools. (#1280). Thanks, @Lewuathe.

Documentation

  • spaceToBatchND doc fixes (#1411). Thanks, @jgartman.
  • BatchToSpaceND doc fixes (#1390). Thanks, @jgartman.
  • Add TypeScript return type annotation to getCPUBackend (#1378).
  • Mark docstrings for BrowserFiles and BrowserDownloads to be compiled into docs (#1368). Thanks, @jeancochrane.
  • Add tf prefix to symbols in tf core docs. (#1370).
  • Update pool docs. (#1357). Thanks, @jgartman.
  • Document tf.whereAsync. (#1339).
  • Fix typo in error message of slice2d (#1300). Thanks, @wemyss.
  • Improve error messaging for batchToSpaceND (#1273). Thanks, @jgartman.

Misc

  • Fix context for window.fetch; Remove unnecessary done() function in test (#1435).
  • Enable passing custom fetch function to BrowserHTTPRequest constructor (#1422).
  • Update DEVELOPMENT.md (#1431).
  • Properly decode data from packed textures when calling async read. (#1419).
  • Annotate class names of optimizers for closure compiler (#1415).
  • Remove gradMode from tf.tidy() public API as it is confusing users. (#1414).
  • Refactor tests to use async/await functionality (#1410). Thanks, @dsanders11.
  • Add trendline to visualize model performance over time, call dataSync for every run (#1396).
  • Refactor tests to use async/await functionality (#1409). Thanks, @dsanders11.
  • Call corresponding fft ops in rfft and irfft. (#1402). Thanks, @Lewuathe.
  • Fix incorrect test names (#1405). Thanks, @dsanders11.
  • Make IS_NODE check more failure-proof to process.versions being undefined. (#1400). Thanks, @dsanders11.
  • Fix outdated references to DownloadTrigger class (#1397). Thanks, @dsanders11.
  • Remove unnecessary blob creation in tests. (#1398). Thanks, @dsanders11.
  • refine condition and add tests (#1386).
  • Make loadWeights independent of fetch (#1347). Thanks, @justadudewhohacks.
  • Add support for transposed bits in the batched matmul optimization. (#1392).
  • improve the url parsing for weight file to allow suffix (#1387).
  • add check for window.location.search before using it (#1384).
  • check fetch response status before converting the response body. (#1383).
  • WebGL backend hands off kernel execution to CPU if inputs are small and on the CPU (#1371).
  • allow user to specify the path prefix for weight files (#1369).
  • confusionMatrix: Address args and return types inconsistency with Python tf (#1359).
  • Fix sparseToDense unit tests by ensuring default value dtype matches sparseValues. (#1361).
  • Update yarn lock file which was forgotten in a previous PR. (#1340).
  • Upgrade webgl-ext type-defs to the latest version. (#1337).
  • Fix the firebase push script to actually call getFullYear() (#1310).
  • always return from uploadtogpu if texture is already on gpu (#1295).
  • log stdout and stderror on git tag and git push tags (#1277).

Data (0.1.4)

Features

  • First round of node integration for tfjs-data (#56).
  • Column-major batching of nested structures. (#55).
  • Deep zip (#52).
  • Add mean and variance in statistics.NumericColumnStatistics (#48).
  • Add LazyIterator.handleErrors(); use normal new ChainedIterator(). (#8).
  • Add Dataset.mapAsync(); strengthen types on zip(). (#15).

Bug fixes

  • Conditionally require node-fetch (only in node) (#103).
  • Check if there are duplicate column names (#87).
  • Add logic to escape quote when parsing csv row (#80).
  • Make tf.data.csv API synchronize (#72).
  • Allow forcing serial execution of iterator promises. (#16).

Documentation

  • Update jsdoc for api website (#104).
  • Add jsdoc for Dataset transform methods (#100).
  • Fix jsdoc for docgenerator (#99).
  • Update readme example (#86).
  • Update tfjs-data demo with model.fitDataset (#82).
  • fix typo link to api docs (#84). Thanks, @tafsiri.
  • Update boston-housing to match docstring usage example in readme (#78).
  • Add @doc lines for doc generator (#63).
  • Add basic csv api and use it in demo (#50).
  • Add boston-housing example in demo folder and use tfjs.data.CSVDataset to get CSV data (#21).

Misc

  • add license in package.json (#95).
  • git publish-npm permission (#93).
  • Add scripts for publish package (#92).
  • add .travis.yml (#91).
  • Add .yalc in .npmignore (#89).
  • Update parcel-bundler (#81).
  • Use yalc to fix duplicate dependency problem in boston housing demo (#79).
  • Fix rollup setup (#76).
  • Exercise a nested batching bug via a new test, and fix it. (#71).
  • Update default exports and add more content in readme.md (#62).
  • Update default exports (#61).
  • Fix tests and make them pass in node env (#59).
  • Use async/await syntax in all tests (#54).
  • Fix tests: Relax variance comparison, update deps, fix test_node error (#51).
  • Add iterator summary for debugging (#17).
  • Update tslint, remove max-line-length directives, fix other lints. (#14).
  • add node testing (#10). Thanks, @reighlan.

Layers (0.8.0 ==> 0.9.1)

Features

  • Expose modelFromJSON as tf.models.modelFromJSON (#344).
  • Add tf.Model.evaluateDataset() & dataset-based validation in tf.Model.fitDataset() (#331).
  • Add layer: tf.layers.dot (#330).
  • Add tf.Model.fitDataset() (#329).
  • Implement computeMask for a few layer types (#377).

Breaking changes

  • Revise implementation of BatchNormalization training code to align with tf.keras (#385).

Bug fixes

  • Fix a bug in which kwarg is not passed properly to internally nested containers (#384).
  • Reset stopTraining at start of fitDataset (#376). Thanks, @dsanders11.
  • Set model for fitDataset callback list (#378). Thanks, @dsanders11.
  • Make tf.Model handle 1D tensor inputs correctly; Better check for validationSplit in fitDataset (#366).
  • DEV [Fix a few tests in layers which caused errors on the console, but not caught by karma] (#362).
  • Stateful RNN: Do not keep old state under non-training mode (#356).
  • Fix various issues in the saving and loading of functional models with complex (loopy) topology [Fix issues in loading an attention model] (#346).
  • Fix deserialization of GlorotUniform & others; Fix tensor name regex (#343).
  • Fix typo in batchNormalization (#341). Thanks, @mikelseverson.
  • Let Sequential.fromConfig() handle non-array config objects (#332).
  • Fix a bug in topological sort; Upgrade tfjs-core to 0.14.1 (#386).
  • check typeof dataset.iterator instead of instanceof (#352).

Performance

  • Executor: remove recursion; dispose intermediate tensors (#371).
  • LSTM and GRU performance: Replace tf.slice with tf.split (#365).
  • Always use implementation 2 in GRU and LSTM for performance (#364).

Development

  • benchmarks: security fix and minor improvements (#363).
  • Update .travis.yml to send notifications on build failure. (#355).
  • Test layers againts tfjs-core@master on Travis Nightly (every 24 hours) (#353).

Documentation

  • Add tf prefix to docs in layers (#359).
  • Improve the doc string and code snippet for tf.layers.inputLayer() (#339).
  • Update "TensorFlow.js API documentation" link (#342).
  • Add doc decorator to some Layer public methods; expose tf.InputSpec (#328).
  • Fix hardSigomid typo (#325). Thanks, @vmarkovtsev.

Misc

  • Add tf.Model.trainOnBatch(); Use numerically-stable impl. of binaryCrossentropy and sparseCategoricalCrossentropy (#382).
  • Fix typo in fitDataset doc string (#380). Thanks, @dsanders11.
  • Fix typo (#379). Thanks, @dsanders11.
  • Remove redundant code (#375). Thanks, @dsanders11.
  • Convert a few more tests to async / await (#372).
  • add ./yalc to npm ignore (#369).
  • Make batchesPerEpoch optional, use iterator.next().done to stop when batchesPerEpoch not specified (#368).
  • Improve integration_test/benchmarks (#360).
  • Fix linter errors in layers. (#361).
  • fixed small JSDoc irregularity in math_utils.ts (#354). Thanks, @euler16.
  • Test cleanups: Remove unnecessary done in async tests (#350).
  • NPM Ignore: Ignore tsconfig.json (#336). Thanks, @manrajgrover.
  • Add missing initial value to callback constructor map (#326).

Converter (0.6.0 ==> 0.7.1)

Features

  • add support for FloorMod op (#213).
  • added support for BatchMatMul and CropAndResize (#209).
  • added support for op SplitV (#212).
  • Add api for loading models directly from tfhub http server (#254).
  • added support for atan2 and leakyRelu ops (#249).
  • add support DepthToSpace op (#248).
  • add support LogSoftmax and SparseToDense ops (#246).
  • Add support for ListDiff op (#247).
  • Add SparseToDense op support (#239).
  • add support Prod op (#238).
  • added support for spectral ops and updated the supported ops doc (#253).
  • added support ScatterND and GatherND (#226).

Performance

  • support aggressive intermediate tensor disposal (#214).
  • added remap optimizer that enable batch norm folding (#230).
  • add output name check for intermeidate tensor disposal (#252).

Documentation

  • Add tf prefix to docs in converter. (#231).
  • Updates README with TF-Hub module references. (#227). Thanks, @vbardiovskyg.
  • added docs gen script, and updated the supported ops (#243).
  • Update README: tfjs-converter is part of tfjs union package (#219).

Misc

  • Refactor keras_h5_conversion: Remove dummy class (#257).
  • Fixed async execute failed due to weights get disposed prematurely (#250).
  • Support converting tf.keras SavedModel format into TF.js format (#244).
  • Clear all data fields in constant tensors (#242). Thanks, @vmarkovtsev.
  • fixed the gather axis bug also added tests for all slice join for format checking (#232).
  • upgraded parcel bundler versions (#229).
  • converting keras only makes model.json (#222). Thanks, @smsaladi.
  • NPM Ignore: Ignore rollup configurations (#220). Thanks, @manrajgrover.
  • fix typo (#221). Thanks, @smsaladi.