tf.norm 函數(shù)
norm(
tensor,
ord='euclidean',
axis=None,
keep_dims=False,
name=None
)
定義于:tensorflow/python/ops/linalg_ops.py.
請參閱指南:數(shù)學(xué)函數(shù)>矩陣數(shù)學(xué)函數(shù)
計算向量、矩陣和張量的范數(shù).
這個函數(shù)可以計算幾個不同的向量范數(shù)(1-norm,Euclidean 或 2-norm,inf-norm,p> 0 的 p-norm)和矩陣范數(shù)(Frobenius,1-norm 和 inf -norm).
參數(shù):
- tensor:float32,float64,complex64,complex128 類型的張量.
- ord:范數(shù)的順序.支持的值是“fro”、“euclidean”、0、1 、2、np.inf 和任意正實數(shù),得到相應(yīng)的 p-norm.缺省值是 'euclidean',如果張量是一個矩陣,則相當(dāng)于 Frobenius 范數(shù);如果是向量,則相當(dāng)于 2-norm.一些限制適用:1、所述的 Frobenius 范數(shù)不是為向量所定義;2、若軸為 2 元組(矩陣范數(shù)),僅支持 “euclidean”、“fro”、1 、np.inf .有關(guān)如何計算在張量中存儲的一批向量或矩陣的準(zhǔn)則,請參見軸的說明.
- axis:如果 axis 是 None(默認(rèn)值),那么輸入被認(rèn)為是一個向量,并且在張量的整??個值集合上計算單個向量范數(shù),即 norm(tensor,ord=ord)是等價于norm(reshape(tensor, [-1]), ord=ord).如果 axis 是 Python 整數(shù),則輸入被認(rèn)為是一組向量,軸在張量中確定軸,以計算向量的范數(shù).如果 axis 是一個2元組的 Python 整數(shù),則它被認(rèn)為是一組矩陣和軸,它確定了張量中的坐標(biāo)軸,以計算矩陣范數(shù).支持負數(shù)索引.示例:如果您在運行時傳遞可以是矩陣或一組矩陣的張量,則通過
axis=[-2,-1],而不是 axis=None 確保計算矩陣范數(shù).
- keep_dims:如果為 True,則 axis 中指定的軸將保持為大小 1.否則,坐標(biāo)軸中的尺寸將從 "輸出" 形狀中移除.
- name:操作的名字.
返回值:
- output:與張量具有相同類型的 Tensor,包含向量或矩陣的范數(shù).如果 keep_dims 是 True,那么輸出的排名等于張量的排名.否則, 如果軸為 none,則輸出為標(biāo)量;如果軸為整數(shù),則輸出的秩小于張量的秩;如果軸為2元組,則輸出的秩比張量的秩低兩倍.
可能引發(fā)的異常:
- ValueError:如果 ord 或者 axis 是無效的.
numpy 兼容性
大致相當(dāng)于 numpy.linalg.norm.不支持:ord <= 0,矩陣的 2-norm,nuclear norm.
其他區(qū)別:1、如果軸為 None, 則將扁平的張量視為向量,而不考慮秩.2、明確支持 "euclidean" 范數(shù)作為默認(rèn)值,包括高階張量.
更多建議: