pytaco.matmul
- pytaco.matmul(t1, t2, out_format=mode_format(compressed), dtype=None)
Matrix multiplication of two tensors.
- Parameters
- t1, t2: tensors, array_like
The tensors to multiply. Tensors must be at least 2-D.
- out_format: format, mode_format, optional
If a
format
is specified, the result tensor is stored in the format out_format.If a
mode_format
is specified, the result the result tensor has a with all of the dimensions stored in themode_format
passed in.
- dtype: Datatype
The datatype of the output tensor.
- Returns
- res: tensor
The matrix product of the input tensors.
Notes
When both arguments are 2-D conventional matrix multiply is performed.
If either argument is N-D N > 2, the tensor is treated as a stack of matrices and is broadcasted in this manner.
Examples
Here we demonstrate broadcasting for a 3-D tensor. We use NumPy arrays for demonstration due to easy data generation. However, we could have given sparse tensors of any format for taco to compute. Note that the choice of a tensor format has a big effect on the final performance. For instance it is favorable to multiply CSR matrices with CSC since dot products can be easily computed.
>>> import pytaco as pt >>> import numpy as np >>> a = np.arange(2 * 2 * 4).reshape((2, 2, 4)) >>> b = np.arange(2 * 2 * 4).reshape((2, 4, 2)) >>> pt.matmul(a,b).shape [2, 2, 2] >>> pt.matmul(a, b)[0, 1, 1] 98