jax.numpy.inner

目录

jax.numpy.inner#

jax.numpy.inner(a, b, *, precision=None, preferred_element_type=None)[源代码][源代码]#

计算两个数组的内积。

JAX 实现的 numpy.inner()

jax.numpy.matmul()jax.numpy.dot() 不同,这总是沿着每个输入的最后一个维度执行收缩。

参数:
  • a (ArrayLike) – 形状为 (..., N) 的数组

  • b (ArrayLike) – 形状为 (..., N) 的数组

  • precision (PrecisionLike) – 可以是 None``(默认),这意味着后端的默认精度,一个 :class:`~jax.lax.Precision` 枚举值(``Precision.DEFAULTPrecision.HIGHPrecision.HIGHEST),或者是一个包含两个此类值的元组,指示 ab 的精度。

  • preferred_element_type (DType | None) – ``None``(默认),这意味着输入类型的默认累积类型,或者是一个数据类型,指示将结果累积到并返回该数据类型的结果。

返回:

形状为 (*a.shape[:-1], *b.shape[:-1]) 的数组,包含输入的批量向量积。

返回类型:

Array

参见

示例

对于一维输入,这实现了标准的(非共轭)向量乘法:

>>> a = jnp.array([1j, 3j, 4j])
>>> b = jnp.array([4., 2., 5.])
>>> jnp.inner(a, b)
Array(0.+30.j, dtype=complex64)

对于多维输入,批处理维度是堆叠的,而不是广播的:

>>> a = jnp.ones((2, 3))
>>> b = jnp.ones((5, 3))
>>> jnp.inner(a, b).shape
(2, 5)