tensorflow / tfjs-core Public archive
master
Commits on Aug 13, 2019
Commits on Aug 12, 2019
-
Move core to its own folder and enable Monorepo Build (#1876)
Move core to its own folder `tfjs-core` and enable Monorepo build system where each package build runs only if the PR touches a file in that package folder. DEV
-
FEATURE Add tf.signal.stft op. One TODO is passing fft length parameter because rfft does not support fft length parameter. We can pass fft length parameter after rfft supports it. See: tensorflow/tfjs#1362
-
Wait for yarn in webgpu / react native CI cloudbuild.yml. (#1877)
We need to wait for yarn on the parent folder because child directories will look in the parent node_modules. This introduces a race condition that causes the CI to be flaky. DEV
Commits on Aug 9, 2019
-
Add non-default noiseShape support to dropout op (#1782)
This PR is a followup PR for [tfjs-core#1343](#1343) which added `dropout` op, dropout feature initially requested in [tfjs#117](tensorflow/tfjs#117). This PR cleans up a TODO, `implements non default noise shape`. The implementation of noiseShape aligns with TensorFlow Python's dropout API. The `noiseShape` feature would benefit further dropout related development, for example, make `tf.layers.dropout` support `noiseShape` configuration. **Relative PR:** * Make dropout layer support non default noiseShape and seed [tensorflow/tfjs-layers#556](tensorflow/tfjs-layers#556) **Reference:** * [TensorFlow tf.nn.dropout documentation](https://www.tensorflow.org/api_docs/python/tf/nn/dropout) * [TensorFlow tf.nn.dropout implementation](https://github.com/tensorflow/tensorflow/blob/r1.13/tensorflow/python/ops/nn_ops.py#L2982-L3054) * [TensorFlow _get_noise_shape implementation](https://github.com/tensorflow/tensorflow/blob/r1.13/tensorflow/python/ops/nn_ops.py#L2903-L2925)
-
Fixed division by zero in QR decomposition. Issue #1058 (#1473)
tensorflow/tfjs#1058 The sign() function returns 0 on 0, which causes a division by zero in the QR decomposition function qr() if there is a zero on the diagonal. BUG
Commits on Aug 8, 2019
-
Cleanup intopk to remove it as a kernel. (#1873)
- Removes the kernel intopk because we don't support async kernels - Renames inTopK to inTopKAsync - Changes unit tests to support the async error throwing expectations. FEATURE
-
Add avgPool3d & maxPool3d (#1778)
This PR adds `avgPool3d` op & `maxPool3d` op with CPU and WebGL implementation, supports inference and gradient. The APIs align with TensorFlow’s Python API [tf.nn.avg_pool3d](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/nn/avg_pool3d) and [tf.nn.max_pool3d](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/nn/max_pool3d). The `avgPool3d` & `maxPool3d` ops support `tf.layers.averagePooling3d` & `tf.layers.maxPooling3d` (feature requested in [tensorflow/tfjs#1035](tensorflow/tfjs#1035)). As a checklist, features in this PR: * Add `tf.avgPool3d` to ops * Add `tf.maxPool3d` to ops * Add `avgPool3d` kernel to handle `tf.avgPool3d`’s prediction * Add `maxPool3d` kernel to handle `tf.maxPool3d`’s prediction * Add private helper `pool3d` function in CPU kernel as the implementation of `avgPool3d` kernel and `maxPool3d` kernel in CPU end * Add `Pool3DProgram` in WebGL kernel as the implementation of `avgPool3d` kernel and `maxPool3d` kernel in GPU end * Add `avgPool3dBackprop` kernel to handle `tf.avgPool3d`’s gradient * Add `avgPool3dBackprop` CPU kernel implementation * Add `AvgPool3DBackpropProgram` as the implementation of `avgPool3dBackprop` WebGL kernel * Add `maxPool3dBackprop` kernel to handle `tf.maxPool3d`’s gradient * Add `maxPool3dBackprop` CPU kernel implementation * Add a private helper function `maxPool3dPositions` for maxPool3dBackprop in CPU kernel * Add `MaxPool3DBackpropProgram` as the implementation of `maxPool3dBackprop` WebGL kernel * Integrate WebGL end’s `maxPool3dPositions` helper function into Pool3DProgram * Add a `computePool3DInfo` util function to compute operation information for `avgPool3d` & `maxPool3d` * Make check function `eitherStridesOrDilationsAreOne` support 3D input * Add 14 unit tests for `avgPool3d` (one test case failed in nodejs env as TF Backend doesn’t support `NUMBER` pad mode) * Add 7 unit tests for `avgPool3dBackprop` * Add 13 unit tests for `maxPool3d` (one test case failed in nodejs env as TF Backend doesn’t support `NUMBER` pad mode) * Add 10 unit tests for `maxPool3dBackprop` * Add 8 unit tests for util function `computePool3DInfo` * Export `Tensor5D `type * Add jsdocs and executable examples for website api documentation I built a local website, if everything goes well, the `avgPool3d` and `maxPool3d` APIs would lie in `Operations/Convolution` section and look like the screen shot below: <img width="1184" alt="Screen Shot 2019-06-06 at 1 32 30 AM" src="https://user-images.githubusercontent.com/7977100/59018883-c13c3400-87fb-11e9-8f36-316edab35231.png"> **Relative PRs:** * Make nodejs kernel support avgPool3d & maxPool3d [tensorflow/tfjs-node#256](tensorflow/tfjs-node#256) * Add averagePooling3d layer & maxPooling3d layer [tensorflow/tfjs-layers#555](tensorflow/tfjs-layers#555) * Add avgPool3d & maxPool3d ops for graph model [tensorflow/tfjs-converter#375](tensorflow/tfjs-converter#375) **Reference:** * [tf.nn.avg_pool3d TensorFlow Python API](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/nn/avg_pool3d) * [tf.nn.max_pool3d TensorFlow Python API](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/nn/max_pool3d) --- To see the logs from the Cloud Build CI, please join either our [discussion](https://groups.google.com/a/tensorflow.org/forum/#!forum/tfjs) or [announcement](https://groups.google.com/a/tensorflow.org/forum/#!forum/tfjs-announce) mailing list. FEATURE
Commits on Aug 7, 2019
-
FEATURE This PR add inTopK op, which behaves the same way as [tf.math.in_top_k](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/math/in_top_k#aliases) in TensorFlow. This op help develop further metrics which depend on inTopK operation, such as, topKCategoricalAccuracy (feature requested in [tensorflow/tfjs#27](tensorflow/tfjs#27) ), sparseTopKCategoricalAccuracy (feature requested in [tensorflow/tfjs#26](tensorflow/tfjs#26)). Relative PR [tensorflow/tfjs-layers#537](tensorflow/tfjs-layers#537) This PR: * Add new inTopK op to [src/ops](https://github.com/tensorflow/tfjs-core/tree/master/src/ops) * Register inTopK in [src/ops/ops.ts](https://github.com/tensorflow/tfjs-core/blob/master/src/ops/ops.ts) * Add inTopK kernel to backend * Add shared inTopK implementation between webgl and cpu * Add relative tests for inTopK Reference: * [TensorFlow in_top_k doc](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/math/in_top_k#aliases) * [TensorFlow in_top_k implementation](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/kernels/in_topk_op.cc) * [TensorFlow in_top_k test cases](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/ops/nn_ops_test.cc#L442)
-
Add react native unit tests to ci (#1870)
cla: yes Add react native unit tests to CI
-
Reduce the size of the gramSchmidt-non-tiny test (#1872)
cla: yes * Reduce the size of the gramSchmidt-non-tiny test Without the change, the test prints slowness warning on my machine: Chrome 76.0.3809 (Linux 0.0.0) SLOW 0.708 secs: gramSchmidt-non-tiny webgl1 {"WEBGL_VERSION":1,"WEBGL_CPU_FORWARD":false,"WEBGL_SIZE_UPLOAD_UNIFORM":0} 16x32 . Chrome 76.0.3809 (Linux 0.0.0) SLOW 0.641 secs: gramSchmidt-non-tiny webgl2 {"WEBGL_VERSION":2,"WEBGL_CPU_FORWARD":false,"WEBGL_SIZE_UPLOAD_UNIFORM":0} 16x32 With the change, it no longer prints the warning. DEV -
Add NCHW dataFormat support for conv2d (#1791)
This PR makes `conv2d` support `NCHW` dataFormat, `NCHW` works well in inference and gradient. The `NCHW` dataFormat is supported in CPU and WebGL backend. Feature requested in [tensorflow/tfjs#1648](tensorflow/tfjs#1648). **Features:** * Make conv2d support NCHW. * Make conv2dDerInput support NCHW. * Make conv2dDerFilter support NCHW. * Add a helper method `convertConv2DDataFormat` to convert `'NHWC'|'NCHW'` format into `'channelsLast'|'channelsFirst'` format. **Tests:** * Add unit tests for NCHW conv2D inference. * Add unit tests for NCHW conv2D gradient. * Add unit tests for `convertConv2DDataFormat`. **Changes in Kernel:** * Make CPU kernel function `conv2d`, `conv2dDerInput`, `conv2dDerFilter` support `channelsFirst` and `channelsLast` dataFormat. * Make GPU kernel function `conv2d`, `conv2dDerInput`, `conv2dDerFilter` support `channelsFirst` and `channelsLast` dataFormat. * Make GPI kernel function `conv2dByMatMul`, `conv2dWithIm2Row` support `channelsFirst` and `channelsLast` dataFormat. * Make GPGPUProgram `Conv2DProgram`, `Conv2DDerInputProgram`, `Conv2DDerFilterProgram`, `Im2ColPackedProgram` support `channelsFirst` and `channelsLast` dataFormat.
-
Add skeleton for the WASM prototype (#1863)
Add skeleton code for the WASM backend. Co-author: @nsthorat - Add `tfjs-backend-wasm` top-level folder (mono-repo style). - Add settings/lint/npm configurations (`tslint.json`, `settings.json`, `package.json`, ...). - Add initial sketch of the C++ backend. - Reuse core's unit tests. - Implement element-wise operation `add()` and test against core unit tests. - Setup building npm package. - Add a simple `build.sh` script (will move to Bazel later) - Add a [multi-root workspace](https://code.visualstudio.com/docs/editor/multi-root-workspaces) file so vscode can understand the mono-repo. Short-term TODOs: - Move c++ files to `src/cpp/` - Move ts files to `src/ts/` - Migrate to Bazel as a build system. - Have the `add` kernel live in its own file so we can drop it in modular builds. - Remove dependency on stdio.h
-
Fix unit test to not use tf.tidy in boolean mask test. (#1871)
DEV Also rename booleanMask to booleanMaskAsync.
-
FEATURE Add tf.booleanMask op. Feature requested in [tensorflow/tfjs#380](tensorflow/tfjs#380). Reference: * [tf.boolean_mask documentation](https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/boolean_mask?hl=en) * [tf.boolean_mask tensorflow python implementation](https://github.com/tensorflow/tensorflow/blob/r2.0/tensorflow/python/ops/array_ops.py#L1274)
-
Add support for generating pseudorandom numbers drawn from a ga… (#1365)
cla: yes * Add support for generating pseudorandom numbers drawn from a gamma distribution
Commits on Aug 5, 2019
-
[io] Add field user-defined metadata; Tweak API for tf.io.fromMemory() (
#1864) FEATURE - This is the first PR for adding support for user-defined metadata in model artifacts. Design doc has been circulated and discussed. - Add the field `userDefinedMetadata` to `ModelArtifacts` and `ModelJSON`. - Deprecate the old API of `tf.io.fromMemory()` which consisted of multiple arguments. The arguments are consolidated into on in the new API. - Add unit tests. Towards tensorflow/tfjs#1596
-
-
Add exports to remove importing from dist in other packages. (#1856)
DEV This pr is to fix dist importing happens in tfjs-node. A corresponding pr is here, tensorflow/tfjs-node#289
-
[RN] Remove manual delegation of read to readSync
INTERNAL Remove manual delegation of read to readSync in react native platform
Commits on Aug 1, 2019
-
INTERNAL Ignore other packages (nodegl, react-native) in the mono-repo when publishing tfjs-core.
Commits on Jul 29, 2019
-
add experimental webgl support for RN platform (#1844)
* fix tests add webgl backend prototype * webgl path for ios * save * avoid shadowing global functions in clip * upgrade tfjs version * remove unused constant in shader compiler * Merge branch 'master' into rn-webgl * code review fixes improve float texture download detection to include half float textures. * save * save * remove warning as it makes tests noisy consider refactoring this in another PR. * Merge branch 'master' into rn-webgl * revert settings update * add comment * save * fix fetching of binary files * save * save * have tests spy on platform.fetch * Merge branch 'master' into rn-webgl * code review fixes * save * Merge branch 'master' into rn-webgl * fix lint errors * code review fixes

