tracel-ai/burn · error

float_scatter with {other:?} update is not implemented

Error message

float_scatter with {other:?} update is not implemented

What it means

Unimplemented-operation guard in the ndarray backend's `float_scatter`: the requested `IndexingUpdateOp` (`other`) for scattering into float tensors is not implemented; only the handled variants (e.g., Set/Assign/Add) are supported.

Source

Thrown at crates/burn-ndarray/src/ops/tensor.rs:223

                    |idx_array: SharedArray<IntElem>| -> NdArrayTensor {
                        execute_with_float_dtype!((tensor, value), |tensor, value| {
                            NdArrayOps::scatter_assign(dim, tensor, idx_array, value)
                        })
                    }
                )
            }
            burn_backend::tensor::IndexingUpdateOp::Mul => {
                execute_with_int_dtype!(
                    indices,
                    IntElem,
                    |idx_array: SharedArray<IntElem>| -> NdArrayTensor {
                        execute_with_float_dtype!((tensor, value), |tensor, value| {
                            NdArrayOps::scatter_mul(dim, tensor, idx_array, value)
                        })
                    }
                )
            }
            other => unimplemented!("float_scatter with {other:?} update is not implemented"),
        }
    }

    fn float_scatter_nd(
        data: FloatTensor<Self>,
        indices: NdArrayTensor,
        values: FloatTensor<Self>,
        reduction: burn_backend::tensor::IndexingUpdateOp,
    ) -> FloatTensor<Self> {
        execute_with_int_dtype!(
            indices,
            IntElem,
            |idx_array: SharedArray<IntElem>| -> NdArrayTensor {
                execute_with_float_dtype!((data, values), |data, values| NdArrayOps::scatter_nd(
                    data, idx_array, values, reduction
                ))
            }
        )

View on GitHub (pinned to d16f7ba2ed)

Solutions

  1. Use a supported update op for float scatter
  2. Compose the operation from gather/scatter_assign primitives
  3. Add the missing match arm in burn-ndarray's tensor ops
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at crates/burn-ndarray/src/ops/tensor.rs:223 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tracel-ai/burn@d16f7ba2ed (2026-09-05). Data as JSON: /api/errors/0328222a0a06990e. Report an issue: GitHub.