Releases
v0.14.1
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 .
You can’t perform that action at this time.