網(wǎng)站建設(shè)在家兼職做網(wǎng)絡(luò)營銷畢業(yè)論文8000字
jnp.linalg.norm
是 JAX 中用于計(jì)算向量或矩陣的范數(shù)的函數(shù)。JAX 是一個(gè)用于高性能機(jī)器學(xué)習(xí)研究的 Python 庫,它提供了與 NumPy 類似的 API,但支持自動(dòng)微分和加速計(jì)算。jnp
是 JAX 的 NumPy 接口。
jnp.linalg.norm
的基本語法
jnp.linalg.norm(x, ord=None, axis=None, keepdims=False)
參數(shù)
- x:要計(jì)算范數(shù)的輸入數(shù)組??梢允窍蛄?#xff08;1D 數(shù)組)或矩陣(2D 數(shù)組)。
- ord:指定要計(jì)算的范數(shù)的類型??梢允且韵轮抵?#xff1a;
None
:默認(rèn)的歐幾里得范數(shù)(L2 范數(shù))。1
:L1 范數(shù),向量元素絕對(duì)值之和。2
:L2 范數(shù),向量元素平方和的平方根。inf
:最大范數(shù),向量元素的最大絕對(duì)值。-inf
:最小范數(shù),向量元素的最小絕對(duì)值。- 對(duì)于矩陣,
ord
可以是以下值之一:'fro'
或None
:Frobenius 范數(shù)(元素平方和的平方根)。1
:列和范數(shù)(每列元素絕對(duì)值之和的最大值)。inf
:行和范數(shù)(每行元素絕對(duì)值之和的最大值)。
- axis:指定沿哪個(gè)軸計(jì)算范數(shù)。如果為
None
,則計(jì)算整個(gè)數(shù)組的范數(shù)。對(duì)于向量,可以是一個(gè)整數(shù);對(duì)于矩陣,可以是一個(gè)長度為 2 的元組,指定計(jì)算的維度。 - keepdims:如果為
True
,則在結(jié)果中保持原數(shù)組的維度。這對(duì)于保持與輸入數(shù)組的形狀一致性很有用。
返回值
返回計(jì)算后的范數(shù)值。如果 axis
為 None
,則返回單個(gè)值;否則返回按指定軸計(jì)算的范數(shù)。
示例
計(jì)算向量的 L2 范數(shù)(默認(rèn))
import jax.numpy as jnpx = jnp.array([1, 2, 3])
l2_norm = jnp.linalg.norm(x)
print(l2_norm) # 輸出: 3.7416573867739413
計(jì)算向量的 L1 范數(shù)
l1_norm = jnp.linalg.norm(x, ord=1)
print(l1_norm) # 輸出: 6.0
計(jì)算矩陣的 Frobenius 范數(shù)
A = jnp.array([[1, 2, 3], [4, 5, 6]])
frobenius_norm = jnp.linalg.norm(A)
print(frobenius_norm) # 輸出: 9.539392014169456
計(jì)算矩陣的列和范數(shù)
column_sum_norm = jnp.linalg.norm(A, ord=1)
print(column_sum_norm) # 輸出: 9.0
計(jì)算矩陣的行和范數(shù)
row_sum_norm = jnp.linalg.norm(A, ord=jnp.inf)
print(row_sum_norm) # 輸出: 15.0
沿指定軸計(jì)算范數(shù)
計(jì)算每列的 L2 范數(shù):
column_l2_norms = jnp.linalg.norm(A, axis=0)
print(column_l2_norms) # 輸出: [4.1231055 5.3851647 6.708204]
計(jì)算每行的 L2 范數(shù):
row_l2_norms = jnp.linalg.norm(A, axis=1)
print(row_l2_norms) # 輸出: [ 3.7416575 8.774964 ]
總結(jié)
jnp.linalg.norm
是一個(gè)強(qiáng)大且靈活的工具,用于計(jì)算向量和矩陣的各種范數(shù)。通過指定不同的 ord
和 axis
參數(shù),可以計(jì)算出不同類型和不同軸上的范數(shù)。