mindspore.ops.tensor_dot
=========================

.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r2.3.1/resource/_static/logo_source.svg
    :target: https://gitee.com/mindspore/mindspore/blob/r2.3.1/docs/api/api_python/ops/mindspore.ops.func_tensor_dot.rst
    :alt: 查看源文件


.. py:function:: mindspore.ops.tensor_dot(x1, x2, axes)

    在指定轴上对Tensor `a` 和 `b` 进行点乘操作。

    点乘操作可以在指定轴上计算 `a` 和 `b` 元素的乘积和。轴数量必须由x1和x2指定,并且该值必须在 `a` 和 `b` 的维度数量的范围内。

    两个输入中选定的维度必须相互匹配。

    axes = 0为外积。axes = 1为普通矩阵乘法(输入是二维的)。axes = 1与axes = ((1,),(0,))相同,其中 `a` 和 `b` 都是二维的。axes = 2与axes = ((1,2),(0,1))相同,其中 `a` 和 `b` 都是三维的。

    参数:
        - **x1** (Tensor) - tensor_dot的第一个输入Tensor,其数据类型为float16或float32。
        - **x2** (Tensor) - tensor_dot的第二个输入Tensor,其数据类型为float16或float32。
        - **axes** (Union[int, tuple(int), tuple(tuple(int)), list(list(int))]) - 指定 `a` 和 `b` 计算轴,可为单个值,也可为长度为2的tuple或list。如果传递了单个值 `N` ,则自动从输入 `a` 的shape中获取最后N个维度,从输入 `b` 的shape中获取前N个维度,分别作为每个维度的轴。

    返回:
        Tensor,输出Tensor的shape为 :math:`(N + M)` 。其中 :math:`N` 和 :math:`M` 在两个输入中没有计算,是自由轴。

    异常:
        - **TypeError** - `x1` 或 `x2` 不是Tensor。
        - **TypeError** - `axes` 不是int、tuple或list。