tracel-ai/burn · error

float_select_assign with {other:?} update is not implemented

Error message

float_select_assign with {other:?} update is not implemented

What it means

Raised inside the IndexingUpdateOp dispatch in float_select_assign: the op extracted from the update tensor (e.g. a Value op other than the handled Replace/Add/Mul set) has no float implementation on the ndarray backend. It signals an unimplemented backend capability rather than invalid user input — the selected update operation variant is simply not yet coded for float dtypes in this backend.

Source

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

                        execute_with_float_dtype!((tensor, value), |tensor, value| {
                            NdArrayMathOps::select_assign_replace(tensor, dim, 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| {
                            NdArrayMathOps::select_assign_mul(tensor, dim, idx_array, value)
                        })
                    }
                )
            }
            other => {
                unimplemented!("float_select_assign with {other:?} update is not implemented")
            }
        }
    }

    fn float_slice(tensor: FloatTensor<Self>, slices: &[burn_backend::Slice]) -> FloatTensor<Self> {
        slice!(tensor, slices)
    }

    fn float_slice_assign(
        tensor: FloatTensor<Self>,
        slices: &[burn_backend::Slice],
        value: FloatTensor<Self>,
    ) -> FloatTensor<Self> {
        execute_with_float_dtype!((tensor, value), |tensor, value| {
            NdArrayOps::slice_assign(tensor, slices, value)
        })
    }

View on GitHub (pinned to d16f7ba2ed)

Solutions

  1. Use a supported update op (e.g., Assign) for float select_assign
  2. Implement via slice assignment on the float tensor
  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:314 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/c8027dccd7412ca5. Report an issue: GitHub.