Exemplo n.º 1
0
def matmul(a, b, transpose_a=False, transpose_b=False, name=None):
    """
    Multiplies matrix `a` by matrix `b`, producing `a` * `b`.

      The inputs must be matrices (or tensors of rank > 2, representing batches of
      matrices), with matching inner dimensions, possibly after transposition.

      Both matrices must be of the same type. The supported types are:
      `float16`, `float32`, `float64`, `int32`, `complex64`, `complex128`.

      Either matrix can be transposed or adjointed (conjugated and transposed) on
      the fly by setting one of the corresponding flag to `True`. These are `False`
      by default.

      If one or both of the matrices contain a lot of zeros, a more efficient
      multiplication algorithm can be used by setting the corresponding
      `a_is_sparse` or `b_is_sparse` flag to `True`. These are `False` by default.
      This optimization is only available for plain matrices (rank-2 tensors) with
      datatypes `bfloat16` or `float32`.

      For example:

      ```python
      # 2-D tensor `a`
      a = tf.constant([1, 2, 3, 4, 5, 6], shape=[2, 3]) => [[1. 2. 3.]
                                                            [4. 5. 6.]]
      # 2-D tensor `b`
      b = tf.constant([7, 8, 9, 10, 11, 12], shape=[3, 2]) => [[7. 8.]
                                                               [9. 10.]
                                                               [11. 12.]]
      c = tf.matmul(a, b) => [[58 64]
                              [139 154]]

      Args:
        a: `Tensor` of type `float16`, `float32`, `float64`, `int32`, `complex64`,
          `complex128` and rank > 1.
        b: `Tensor` with same type and rank as `a`.
        transpose_a: If `True`, `a` is transposed before multiplication.
        transpose_b: If `True`, `b` is transposed before multiplication.
        name: Name for the operation (optional).

      Returns:
        A `Tensor` of the same type as `a` and `b` where each inner-most matrix is
        the product of the corresponding matrices in `a` and `b`, e.g. if all
        transpose are `False`:

        `output`[..., i, j] = sum_k (`a`[..., i, k] * `b`[..., k, j]),
        for all indices i, j.

      Note: This is matrix product, not element-wise product.

    """

    return ops.Dot([a, b], TransA=transpose_a, TransB=transpose_b, name=name)
Exemplo n.º 2
0
def dot(a, b):
    """Calculate A dot B.

    This operator can trigger ``Matrix Multiplication`` or ``Matrix Vector Multiplication`` also.

    Parameters
    ----------
    a : Tensor
        The input, represents as A.
    b : Tensor
        The input, represents as B.

    Returns
    -------
    Tensor
        The output tensor.

    """
    return ops.Dot([a, b])
Exemplo n.º 3
0
def dot(x1, x2, **kwargs):
    return ops.Dot([x1, x2], **kwargs)