jax.numpy.inner#
- jax.numpy.inner(a, b, *, precision=None, preferred_element_type=None)[源代码]#
计算两个数组的内积。
JAX 实现
numpy.inner()。与
jax.numpy.matmul()或jax.numpy.dot()不同,此函数始终沿着每个输入的最后一个维度进行收缩。- 参数:
a (Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) – 形状为
(..., N)的数组b (Array | ndarray | bool | number | bool | int | float | complex | TypedNdArray) – 形状为
(..., N)的数组precision (None | str | Precision | tuple[str, str] | tuple[Precision, Precision] | DotAlgorithm | DotAlgorithmPreset) – 可以是
None(默认值),表示后端默认精度;一个Precision枚举值(Precision.DEFAULT、Precision.HIGH或Precision.HIGHEST);或一个包含两个此类值的元组,指示a和b的精度。preferred_element_type (str | type[Any] | dtype | SupportsDType | 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)