Show / Hide Table of Contents

    Operator ( .* )

    static member ( .* ): Tensor<'T> * Tensor<'T> -> Tensor<'T>

    Computes the (batched) matrix product, (batched) matrix-vector product or scalar product.

    Declaration
    static member ( .* ): a:Tensor<'T> * b:Tensor<'T> -> Tensor<'T>
    Parameters
    Type Name Description
    Tensor<'T> a

    The tensor on the left side of this binary operation.

    Tensor<'T> b

    The tensor on the right side of this binary operation.

    Returns
    Type Description
    Tensor<'T>

    A new tensor containing the result of this operation.

    Remarks

    If a and b are vectors of the same length, then the scalar product is computed. The result is a scalar.

    If a is a matrix and b is a vector of compatible shape, then the matrix-vector product is computed. The result is a vector.

    If both a and b are matrices of compatibles shapes, then the matrix product is computed. The result is a matrix.

    If a is a tensor of shape [b_1; ...; b_n; i; j] and b is a tensor of shape [b_1; ...; b_n; j], then the batched matrix-vector product is computed resulting in a tensor of shape [b_1; ...; b_n; i]. Broadcasting rules apply for the batch dimensions.

    If a is a tensor of shape [b_1; ...; b_n; i; j] and b is a tensor of shape [b_1; ...; b_n; j; k], then the batched matrix product is computed resulting in a tensor of shape [b_1; ...; b_n; i; k]. Broadcasting rules apply for the batch dimensions.

    Examples
     // Scalar product
     let a = HostTensor.ofList [5.0; 6.0; 7.0]
     let b = HostTensor.ofList [2.0; 3.0; 4.0]
     let c = a .* b // c = [56.0]
    
     // Matrix-vector product
     let a = HostTensor.ofList2D [[5.0; 6.0; 7.0]
                                  [8.0; 9.0; 0.0]]
     let b = HostTensor.ofList [2.0; 3.0; 4.0]
     let c = a .* b // c = [56.0; 43.0]
    
     // Matrix product
     let a = HostTensor.ofList2D [[5.0; 6.0; 7.0]
                                  [8.0; 9.0; 0.0]]
     let b = HostTensor.ofList2D [[2.0; 1.0] 
                                  [3.0; 1.0]
                                  [4.0; 1.0]]
     let c = a .* b // c = [[56.0; 18.0] 
                    //      [43.0; 17.0]]
    See Also
    member FillDot: Tensor<'T> -> Tensor<'T> -> unit
    Back to top Generated by DocFX