Show / Hide Table of Contents

    Property M

    property M: Tensor<bool> list -> Tensor<'T>

    Picks elements from a tensor using one or more boolean mask tensors.

    Declaration
    property M: Tensor<bool> list -> Tensor<'T> with get, set
    Parameters
    Type Name Description
    Tensor<bool> list masks

    A list of boolean mask tensors or val NoMask.

    Property Value
    Type Description
    Tensor<'T>

    All elements from the tensor for which the mask is true.

    Remarks

    Masking picks elements from the tensor for which the corresponding element in the mask tensor is true. The mask can, for example, be generated by one or more element-wise comparison operation.

    The get operation returns a copy of the selected elements of the tensor.

    The set operation replaces the selected elements with a copy of the specified tensor.

    If a dimension should not be masked, specify val NoMask instead of a mask tensor.

    This mask specification variant is intended for programmatically generated ranges. For most use cases the variant property M: Tensor<bool> -> Tensor<'T> is more succinct and thus the recommended method.

    Exceptions
    Type Condition
    System.InvalidArgumentException

    Raised when the mask is incompatible with the tensor.

    See Also
    property M: Tensor<bool> -> Tensor<'T>

    property M: Tensor<bool> -> Tensor<'T>

    Picks elements from a tensor using one or more boolean mask tensors.

    Declaration
    property M: Tensor<bool> -> Tensor<'T> with get, set
    Parameters
    Type Name Description
    Tensor<bool> m0

    A boolean mask tensor or val NoMask.

    Property Value
    Type Description
    Tensor<'T>

    All elements from the tensor for which the mask is true.

    Remarks

    Masking picks elements from the tensor for which the corresponding element in the mask tensor is true. The mask can, for example, be generated by one or more element-wise comparison operation.

    The get operation returns a copy of the selected elements of the tensor.

    The set operation replaces the selected elements with a copy of the specified tensor.

    If a dimension should not be masked, specify val NoMask instead of a mask tensor.

    For clarity the documentation does not list all overloads of M. However, this masking method can be used for up to 5 dimensions, as shown in the example. For programmatically generated ranges or for more than 5 dimensions, the mask specification variant property M: Tensor<bool> list -> Tensor<'T> is available.

    Currently this operation is only supported for tensors stored on the host. Support for CUDA tensors is planned in the future.

    Examples
     let a = HostTensor.ofList [[1.0; 2.0; 3.0]
                                [4.0; 5.0; 6.0]]
    
     // masked get with one mask for the whole tensor
     let m = HostTensor.ofList [[true;  true;  false]
                                [false; false; true ]]
     let b = a.M(m) // b = [1.0; 2.0; 6.0]
    
     // an element-wise comparison operator can be used to create the mask
     let c = a.M(a >>>> 3.5) // c = [4.0; 5.0; 6.0]
    
     // masked get with one mask per dimension
     let m0 = HostTensor.ofList [true; false]
     let m1 = HostTensor.ofList [false; false; true]
     let d = a.M(m0, m1) // d = [3.0]
    
     // masked get using only one dimension
     let m0 = HostTensor.ofList [true; false]
     let e = a.M(m0, NoMask) // e = [[1.0; 2.0; 3.0]]
    
     // masked set with one mask for the whole tensor
     let m = HostTensor.ofList [[true;  true;  false]
                                [false; false; true ]]
     a.M(m) <- [8.0; 9.0; 0.0]  // a = [[8.0; 9.0; 3.0]
                                //      [4.0; 5.0; 0.0]]
    Exceptions
    Type Condition
    System.InvalidArgumentException

    Raised when the mask is incompatible with the tensor.

    See Also
    property M: Tensor<bool> list -> Tensor<'T>
    Back to top Generated by DocFX