pymc.math.matmul#
- pymc.math.matmul(x1, x2, dtype=None)[source]#
Compute the matrix product of two tensor variables.
- Parameters:
- x1, x2
Input arrays, scalars not allowed.
- dtype
The desired data-type for the array. If not given, then the type will be determined as the minimum type required to hold the objects in the sequence.
- Returns:
- out
ndarray
The matrix product of the inputs. This is a scalar only when both x1, x2 are 1-d vectors.
- out
- Raises:
ValueError
If the last dimension of x1 is not the same size as the second-to-last dimension of x2. If a scalar value is passed in.
Notes
The behavior depends on the arguments in the following way.
If both arguments are 2-D they are multiplied like conventional matrices.
- If either argument is N-D, N > 2, it is treated as a stack of matrices
residing in the last two indexes and broadcast accordingly.
- If the first argument is 1-D, it is promoted to a matrix by prepending a
1 to its dimensions. After matrix multiplication the prepended 1 is removed.
- If the second argument is 1-D, it is promoted to a matrix by appending a
1 to its dimensions. After matrix multiplication the appended 1 is removed.
matmul differs from dot in two important ways:
Multiplication by scalars is not allowed, use mul instead.
- Stacks of matrices are broadcast together as if the matrices were elements,
respecting the signature
(n, k), (k, m) -> (n, m)
: