tf.cumsum / tf.cumprod with a negative axis return a tensor of shape [undefined, ...] (cpu) or crash (wasm)
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 82/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript, typescript, wasm
- Domain
- backend, machine-learning
Research direction
Start with tfjs-core/src/ops/cumsum.ts and cumprod.ts, then inspect the CPU and WASM kernels that pass [axis] to getAxesPermutation. Compare how other ops normalize axes with parseAxisParam, and check existing tests for cumulative sum and product. Done when a negative axis either produces results matching the equivalent positive axis on both backends or raises a clear validation error.
Written by the indexing model from the issue text.
Description
Please make sure that this is a bug. As per our
GitHub Policy,
we only address code/doc bugs, performance issues, feature requests and
build/installation issues on GitHub. tag:bug_template
System information
- Have I written custom code (as opposed to using a stock example script provided in TensorFlow.js): yes
- OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux x86_64 (Debian 12)
- Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: n/a
- TensorFlow.js installed from (npm or script link): npm
- TensorFlow.js version (use command below): @tensorflow/tfjs-core, @tensorflow/tfjs-backend-cpu, @tensorflow/tfjs-backend-wasm 4.22.0 (master 7f5309fe unchanged), Node.js v26.13.0
- Browser version: n/a
- Tensorflow.js Converter Version: n/a
Describe the current behavior
tf.cumsum(x, -1) and tf.cumprod(x, -1) do not normalize or validate a negative axis. On the cpu backend, the returned tensor has shape [undefined, 2] and empty data []. On the wasm backend, the call aborts with RuntimeError: memory access out of bounds inside Module._free. Most other tfjs ops accept negative axes via parseAxisParam, as does TensorFlow's tf.math.cumsum.
Describe the expected behavior
Compute the cumulative sum or product along the last axis ([[1, 3, 6], [4, 9, 15]] for the example below, matching tf.cumsum(x, 1)), or throw a validation error if negative axes are not supported.
Standalone code to reproduce the issue
const tf = require("@tensorflow/tfjs-core");
require("@tensorflow/tfjs-backend-cpu");
require("@tensorflow/tfjs-backend-wasm");
(async () => {
await tf.setBackend(process.argv[2]);
const x = tf.tensor2d([1, 2, 3, 4, 5, 6], [2, 3]);
const y = tf.cumsum(x, -1);
console.log(y.shape, Array.from(y.dataSync()));
})();
$ node cumsum.js cpu
[ undefined, 2 ] []
$ node cumsum.js wasm
RuntimeError: memory access out of bounds
Other info / logs
tfjs-core/src/ops/cumsum.ts and cumprod.ts pass axis directly to the kernel without calling parseAxisParam, and the cpu and wasm kernels pass [axis] directly to getAxesPermutation([axis], rank).
Credit: https://ucsbplse.github.io/
- Dominant language
- TypeScript
- Stars
- 19.2k
- Forks
- 2k
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from tensorflow/tfjs
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
tensorflow/tfjs#8753 ·
-
Review argparse dependency bringing in sprintf-js CVE-2026-97058Possibly taken @Varun-S10 claimed this 19 days ago. Opentype:others
Difficulty 4/5 3-5 days Newbie friendliness 22/100
tensorflow/tfjs#8749 · 1 assignee ·
-
`@tensorflow/tfjs-node` installation issueMay be free again @nileshau-afk claimed this 29 days ago, and no pull request is open. Opentype:build/install
Difficulty 4/5 3-5 days Newbie friendliness 48/100
tensorflow/tfjs#8748 · 1 assignee ·
-
The package tfjs-node is not working in version 26.8.1 of NodeMay be free again @nileshau-afk claimed this 57 days ago, and no pull request is open. Opencomp:node.js type:bug
tensorflow/tfjs#8746 · 4 comments · 1 reaction · 1 assignee ·
-
I'm getting these npm errors while trying to install @tensorflow/tfjs-nodeMay be free again @Varun-S10 claimed this 87 days ago, and no pull request is open. Openstat:awaiting tensorflower type:build/install type:support
tensorflow/tfjs#8740 · 4 comments · 1 reaction · 1 assignee ·
Similar issues
-
content triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
tool-submission
Difficulty 1/5 Under an hour Newbie friendliness 83/100
BraveOPotato/NoSignups#2348 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
code-yeongyu/oh-my-openagent#12784 ·
Maintainers usually reply within 1 day
-
external-issue to-triage
Difficulty 2/5 1-3 hours Newbie friendliness 71/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
MomsBloomOrg/momsbloom-resources#84 ·
Maintainers usually reply within 1 day