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
(默认值),表示使用后端的默认精度;也可以是Precision
枚举值 (Precision.DEFAULT
,Precision.HIGH
或Precision.HIGHEST
);或者是一个包含两个此类值的元组,分别表示a
和b
的精度。preferred_element_type (DType | None) – 可以是
None
(默认值),表示使用输入类型的默认累加类型;或者是一个数据类型,表示将结果累加到该数据类型并返回该数据类型的结果。
- 返回值:
形状为
(*a.shape[:-1], *b.shape[:-1])
的数组,其中包含输入批量的向量乘积。- 返回类型:
另请参阅
jax.numpy.vecdot()
: 沿指定轴的共轭乘法。jax.numpy.tensordot()
: 一般张量乘法。jax.numpy.matmul()
: 一般批量矩阵和向量乘法。
示例
对于一维输入,此方法实现标准的(非共轭)向量乘法
>>> 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)