Trait burn::tensor::ops::BoolTensorOps

pub trait BoolTensorOps<B>
where B: Backend,
{
Show 29 methods // Required methods fn bool_empty<const D: usize>( shape: Shape<D>, device: &<B as Backend>::Device, ) -> <B as Backend>::BoolTensorPrimitive<D>; fn bool_shape<const D: usize>( tensor: &<B as Backend>::BoolTensorPrimitive<D>, ) -> Shape<D>; fn bool_into_data<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> impl Future<Output = TensorData> + Send; fn bool_from_data<const D: usize>( data: TensorData, device: &<B as Backend>::Device, ) -> <B as Backend>::BoolTensorPrimitive<D>; fn bool_into_int<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::IntTensorPrimitive<D>; fn bool_into_float<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::FloatTensorPrimitive<D>; fn bool_device<const D: usize>( tensor: &<B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::Device; fn bool_to_device<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, device: &<B as Backend>::Device, ) -> <B as Backend>::BoolTensorPrimitive<D>; fn bool_reshape<const D1: usize, const D2: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D1>, shape: Shape<D2>, ) -> <B as Backend>::BoolTensorPrimitive<D2>; fn bool_slice<const D1: usize, const D2: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D1>, ranges: [Range<usize>; D2], ) -> <B as Backend>::BoolTensorPrimitive<D1>; fn bool_slice_assign<const D1: usize, const D2: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D1>, ranges: [Range<usize>; D2], value: <B as Backend>::BoolTensorPrimitive<D1>, ) -> <B as Backend>::BoolTensorPrimitive<D1>; fn bool_equal<const D: usize>( lhs: <B as Backend>::BoolTensorPrimitive<D>, rhs: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<D>; fn bool_not<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<D>; fn bool_swap_dims<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, dim1: usize, dim2: usize, ) -> <B as Backend>::BoolTensorPrimitive<D>; fn bool_permute<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, axes: [usize; D], ) -> <B as Backend>::BoolTensorPrimitive<D>; fn bool_flip<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, axes: &[usize], ) -> <B as Backend>::BoolTensorPrimitive<D>; fn bool_expand<const D1: usize, const D2: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D1>, shape: Shape<D2>, ) -> <B as Backend>::BoolTensorPrimitive<D2>; // Provided methods fn bool_repeat_dim<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, dim: usize, times: usize, ) -> <B as Backend>::BoolTensorPrimitive<D> { ... } fn bool_cat<const D: usize>( tensors: Vec<<B as Backend>::BoolTensorPrimitive<D>>, dim: usize, ) -> <B as Backend>::BoolTensorPrimitive<D> { ... } fn bool_not_equal<const D: usize>( lhs: <B as Backend>::BoolTensorPrimitive<D>, rhs: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<D> { ... } fn bool_transpose<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<D> { ... } fn bool_narrow<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, dim: usize, start: usize, length: usize, ) -> <B as Backend>::BoolTensorPrimitive<D> { ... } fn bool_chunk<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, chunks: usize, dim: usize, ) -> Vec<<B as Backend>::BoolTensorPrimitive<D>> { ... } fn bool_any<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<1> { ... } fn bool_any_dim<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, dim: usize, ) -> <B as Backend>::BoolTensorPrimitive<D> { ... } fn bool_all<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<1> { ... } fn bool_all_dim<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, dim: usize, ) -> <B as Backend>::BoolTensorPrimitive<D> { ... } fn bool_argwhere<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> impl Future<Output = <B as Backend>::IntTensorPrimitive<2>> + Send { ... } fn bool_nonzero<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> impl Future<Output = Vec<<B as Backend>::IntTensorPrimitive<1>>> + Send { ... }
}
Expand description

Bool Tensor API for basic operations, see tensor for documentation on each function.

Required Methods§

fn bool_empty<const D: usize>( shape: Shape<D>, device: &<B as Backend>::Device, ) -> <B as Backend>::BoolTensorPrimitive<D>

Creates a new bool tensor.

§Arguments
  • shape - The shape of the tensor.
  • device - The device to create the tensor on.
§Returns

The boolean tensor with the given shape.

fn bool_shape<const D: usize>( tensor: &<B as Backend>::BoolTensorPrimitive<D>, ) -> Shape<D>

Returns the shape of the tensor.

§Arguments
  • tensor - The tensor.
§Returns

The shape of the tensor.

fn bool_into_data<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> impl Future<Output = TensorData> + Send

Converts the tensor to a data structure.

§Arguments
  • tensor - The tensor.
§Returns

The data structure with the tensor’s data.

fn bool_from_data<const D: usize>( data: TensorData, device: &<B as Backend>::Device, ) -> <B as Backend>::BoolTensorPrimitive<D>

Creates a tensor from the data structure.

§Arguments
  • data - The data structure.
  • device - The device to create the tensor on.
§Returns

The tensor with the data.

fn bool_into_int<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::IntTensorPrimitive<D>

Converts bool tensor to int tensor.

§Arguments
  • tensor - The tensor.
§Returns

The int tensor with the same data as the bool tensor.

fn bool_into_float<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::FloatTensorPrimitive<D>

Converts bool tensor to float tensor.

§Arguments
  • tensor - The tensor.
§Returns

The float tensor with the same data as the bool tensor.

fn bool_device<const D: usize>( tensor: &<B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::Device

Gets the device of the tensor.

§Arguments
  • tensor - The tensor.
§Returns

The device of the tensor.

fn bool_to_device<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, device: &<B as Backend>::Device, ) -> <B as Backend>::BoolTensorPrimitive<D>

Moves the tensor to the device.

fn bool_reshape<const D1: usize, const D2: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D1>, shape: Shape<D2>, ) -> <B as Backend>::BoolTensorPrimitive<D2>

Reshapes the tensor.

§Arguments
  • tensor - The tensor.
  • shape - The new shape.
§Returns

The tensor with the new shape.

fn bool_slice<const D1: usize, const D2: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D1>, ranges: [Range<usize>; D2], ) -> <B as Backend>::BoolTensorPrimitive<D1>

Gets the values from the tensor for the given ranges.

§Arguments
  • tensor - The tensor.
  • ranges - The ranges to get the values from.
§Returns

The tensor with the values for the given ranges.

fn bool_slice_assign<const D1: usize, const D2: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D1>, ranges: [Range<usize>; D2], value: <B as Backend>::BoolTensorPrimitive<D1>, ) -> <B as Backend>::BoolTensorPrimitive<D1>

Sets the values in the tensor for the given ranges.

§Arguments
  • tensor - The tensor.
  • ranges - The ranges to set the values for.
  • value - The values to set.
§Returns

The tensor with the values set for the given ranges.

fn bool_equal<const D: usize>( lhs: <B as Backend>::BoolTensorPrimitive<D>, rhs: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<D>

Equates the two tensors.

§Arguments
  • lhs - The left hand side tensor.
  • rhs - The right hand side tensor.
§Returns

The tensor with the result of the equate.

fn bool_not<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<D>

Inverses boolean values.

§Arguments
  • tensor - The tensor.
§Returns

The tensor with the result of the negation.

fn bool_swap_dims<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, dim1: usize, dim2: usize, ) -> <B as Backend>::BoolTensorPrimitive<D>

Swaps two dimensions of a bool tensor.

§Arguments
  • tensor - The tensor to swap the dimensions of.
  • dim1 - The first dimension to swap.
  • dim2 - The second dimension to swap.
§Returns

The tensor with the dimensions swapped.

fn bool_permute<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, axes: [usize; D], ) -> <B as Backend>::BoolTensorPrimitive<D>

Permutes the dimensions of a tensor.

§Arguments
  • tensor - The tensor to permute the dimensions of.
  • axes - The new order of the dimensions.
§Returns

The tensor with the dimensions permuted.

fn bool_flip<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, axes: &[usize], ) -> <B as Backend>::BoolTensorPrimitive<D>

Reverse the order of elements in a tensor along the given axes.

§Arguments
  • tensor - The tensor to reverse.
  • axes - The axes to reverse.

The tensor with the elements reversed.

fn bool_expand<const D1: usize, const D2: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D1>, shape: Shape<D2>, ) -> <B as Backend>::BoolTensorPrimitive<D2>

Broadcasts the bool tensor to the given shape.

Provided Methods§

fn bool_repeat_dim<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, dim: usize, times: usize, ) -> <B as Backend>::BoolTensorPrimitive<D>

Repeats one dimension of the tensor a given number of times along that dimension.

§Arguments
  • tensor - The tensor.
  • dim - The dimension to repeat.
  • times - The number of times to repeat the dimension.
§Returns

The tensor with the dimension repeated.

fn bool_cat<const D: usize>( tensors: Vec<<B as Backend>::BoolTensorPrimitive<D>>, dim: usize, ) -> <B as Backend>::BoolTensorPrimitive<D>

Concatenates the tensors along the given dimension.

§Arguments
  • tensors - The tensors to concatenate.
  • dim - The dimension to concatenate along.
§Returns

The tensor with the tensors concatenated along the given dimension.

fn bool_not_equal<const D: usize>( lhs: <B as Backend>::BoolTensorPrimitive<D>, rhs: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<D>

Element-wise non-equality comparison.

§Arguments
  • lhs - The left hand side tensor.
  • rhs - The right hand side tensor.
§Returns

The tensor with the result of the comparison.

fn bool_transpose<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<D>

Transposes a bool tensor.

§Arguments
  • tensor - The tensor to transpose.
§Returns

The transposed tensor.

fn bool_narrow<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, dim: usize, start: usize, length: usize, ) -> <B as Backend>::BoolTensorPrimitive<D>

Returns a new tensor with the given dimension narrowed to the given range.

§Arguments
  • dim - The dimension along which the tensor will be narrowed.
  • start - The starting point of the given range.
  • length - The ending point of the given range.
§Panics
  • If the dimension is greater than the number of dimensions of the tensor.
  • If the given range exceeds the number of elements on the given dimension.
§Returns

A new tensor with the given dimension narrowed to the given range.

fn bool_chunk<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, chunks: usize, dim: usize, ) -> Vec<<B as Backend>::BoolTensorPrimitive<D>>

Split the tensor along the given dimension into chunks.

§Arguments
  • tensor - The tensor.
  • chunks - The number of chunks to be produced
  • times - The dimension along which the tensor will be split.
§Returns

A vector of tensors

fn bool_any<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<1>

Tests if any element in the boolean tensor evaluates to True.

§Arguments
  • tensor - The tensor to test.
§Returns

A boolean tensor with a single element, True if any element in the tensor is True, False otherwise.

fn bool_any_dim<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, dim: usize, ) -> <B as Backend>::BoolTensorPrimitive<D>

Tests if any element in the boolean tensor evaluates to True along a given dimension dim.

§Arguments
  • tensor - The tensor to test.
  • dim - The axis along which to test.
§Returns

A boolean tensor Tensor<B, D, Bool> with the same size as input tensor, except in the dim axis where the size is 1. The elem in the dim axis is True if any element along this dim in the input evaluates to True, False otherwise.

fn bool_all<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> <B as Backend>::BoolTensorPrimitive<1>

Tests if all elements in the boolean tensor evaluate to True.

§Arguments
  • tensor - The tensor to test.
§Returns

A boolean tensor Tensor<B, 1, Bool> with a single element, True if all elements in the input tensor evaluate to True, False otherwise.

fn bool_all_dim<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, dim: usize, ) -> <B as Backend>::BoolTensorPrimitive<D>

Tests if all elements in the boolean tensor evaluate to True along a given dimension dim.

§Arguments
  • tensor - The tensor to test.
  • dim - The axis along which to test.
§Returns

A boolean tensor Tensor<B, D, Bool> with the same size as input tensor, except in the dim axis where the size is 1. The elem in the dim axis is True if all elements along this dim in the input evaluates to True, False otherwise.

fn bool_argwhere<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> impl Future<Output = <B as Backend>::IntTensorPrimitive<2>> + Send

Compute the indices of the elements that are non-zero, grouped by element.

§Arguments
  • tensor - The input tensor.
§Returns

A vector of tensors, one for each dimension of the given tensor, containing the indices of the non-zero elements in that dimension.

fn bool_nonzero<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, ) -> impl Future<Output = Vec<<B as Backend>::IntTensorPrimitive<1>>> + Send

Compute the indices of the elements that are non-zero.

§Arguments
  • tensor - The input tensor.
§Returns

A vector of tensors, one for each dimension of the given tensor, containing the indices of the non-zero elements in that dimension.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl<B> BoolTensorOps<Fusion<B>> for Fusion<B>
where B: FusionBackend,

§

fn bool_empty<const D: usize>( shape: Shape<D>, device: &<Fusion<B> as Backend>::Device, ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D>

§

fn bool_shape<const D: usize>( tensor: &<Fusion<B> as Backend>::BoolTensorPrimitive<D>, ) -> Shape<D>

§

async fn bool_into_data<const D: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D>, ) -> TensorData

§

fn bool_from_data<const D: usize>( data: TensorData, device: &<Fusion<B> as Backend>::Device, ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D>

§

fn bool_into_int<const D: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D>, ) -> <Fusion<B> as Backend>::IntTensorPrimitive<D>

§

fn bool_into_float<const D: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D>, ) -> <Fusion<B> as Backend>::FloatTensorPrimitive<D>

§

fn bool_device<const D: usize>( tensor: &<Fusion<B> as Backend>::BoolTensorPrimitive<D>, ) -> <Fusion<B> as Backend>::Device

§

fn bool_to_device<const D: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D>, device: &<Fusion<B> as Backend>::Device, ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D>

§

fn bool_reshape<const D1: usize, const D2: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D1>, shape: Shape<D2>, ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D2>

§

fn bool_slice<const D1: usize, const D2: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D1>, ranges: [Range<usize>; D2], ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D1>

§

fn bool_slice_assign<const D1: usize, const D2: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D1>, ranges: [Range<usize>; D2], value: <Fusion<B> as Backend>::BoolTensorPrimitive<D1>, ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D1>

§

fn bool_cat<const D: usize>( tensors: Vec<<Fusion<B> as Backend>::BoolTensorPrimitive<D>>, dim: usize, ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D>

§

fn bool_equal<const D: usize>( lhs: <Fusion<B> as Backend>::BoolTensorPrimitive<D>, rhs: <Fusion<B> as Backend>::BoolTensorPrimitive<D>, ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D>

§

fn bool_not<const D: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D>, ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D>

§

fn bool_swap_dims<const D: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D>, dim1: usize, dim2: usize, ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D>

§

fn bool_permute<const D: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D>, axes: [usize; D], ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D>

§

fn bool_expand<const D1: usize, const D2: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D1>, shape: Shape<D2>, ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D2>

§

fn bool_flip<const D: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D>, axes: &[usize], ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D>

§

fn bool_repeat_dim<const D: usize>( tensor: <Fusion<B> as Backend>::BoolTensorPrimitive<D>, dim: usize, times: usize, ) -> <Fusion<B> as Backend>::BoolTensorPrimitive<D>

Implementors§

§

impl<B, C> BoolTensorOps<Autodiff<B, C>> for Autodiff<B, C>

§

impl<E, Q> BoolTensorOps<LibTorch<E, Q>> for LibTorch<E, Q>
where E: TchElement, Q: QuantElement,

§

impl<E, Q> BoolTensorOps<NdArray<E, Q>> for NdArray<E, Q>
where E: FloatNdArrayElement, Q: QuantElement,

§

impl<F, I> BoolTensorOps<Candle<F, I>> for Candle<F, I>
where F: FloatCandleElement, I: IntCandleElement,

§

impl<R, F, I> BoolTensorOps<JitBackend<R, F, I>> for JitBackend<R, F, I>
where R: JitRuntime, F: FloatElement, I: IntElement,