TensorFlow范數(shù):tf.norm函數(shù)

2018-11-06 18:13 更新
tf.norm 函數(shù)
norm(
    tensor,
    ord='euclidean',
    axis=None,
    keep_dims=False,
    name=None
)

定義于:tensorflow/python/ops/linalg_ops.py.

請(qǐng)參閱指南:數(shù)學(xué)函數(shù)>矩陣數(shù)學(xué)函數(shù)

計(jì)算向量、矩陣和張量的范數(shù).

這個(gè)函數(shù)可以計(jì)算幾個(gè)不同的向量范數(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í)數(shù),得到相應(yīng)的 p-norm.缺省值是 'euclidean',如果張量是一個(gè)矩陣,則相當(dāng)于 Frobenius 范數(shù);如果是向量,則相當(dāng)于 2-norm.一些限制適用:1、所述的 Frobenius 范數(shù)不是為向量所定義;2、若軸為 2 元組(矩陣范數(shù)),僅支持 “euclidean”、“fro”、1 、np.inf .有關(guān)如何計(jì)算在張量中存儲(chǔ)的一批向量或矩陣的準(zhǔn)則,請(qǐng)參見(jiàn)軸的說(shuō)明.
  • axis:如果 axis 是 None(默認(rèn)值),那么輸入被認(rèn)為是一個(gè)向量,并且在張量的整??個(gè)值集合上計(jì)算單個(gè)向量范數(shù),即 norm(tensor,ord=ord)是等價(jià)于norm(reshape(tensor, [-1]), ord=ord).如果 axis 是 Python 整數(shù),則輸入被認(rèn)為是一組向量,軸在張量中確定軸,以計(jì)算向量的范數(shù).如果 axis 是一個(gè)2元組的 Python 整數(shù),則它被認(rèn)為是一組矩陣和軸,它確定了張量中的坐標(biāo)軸,以計(jì)算矩陣范數(shù).支持負(fù)數(shù)索引.示例:如果您在運(yùn)行時(shí)傳遞可以是矩陣或一組矩陣的張量,則通過(guò) axis=[-2,-1],而不是 axis=None 確保計(jì)算矩陣范數(shù).
  • keep_dims:如果為 True,則 axis 中指定的軸將保持為大小 1.否則,坐標(biāo)軸中的尺寸將從 "輸出" 形狀中移除.
  • name:操作的名字.

返回值:

  • output:與張量具有相同類型的 Tensor,包含向量或矩陣的范數(shù).如果 keep_dims 是 True,那么輸出的排名等于張量的排名.否則, 如果軸為 none,則輸出為標(biāo)量;如果軸為整數(shù),則輸出的秩小于張量的秩;如果軸為2元組,則輸出的秩比張量的秩低兩倍.

可能引發(fā)的異常:

  • ValueError:如果 ord 或者 axis 是無(wú)效的.

numpy 兼容性

大致相當(dāng)于 numpy.linalg.norm.不支持:ord <= 0,矩陣的 2-norm,nuclear norm.

其他區(qū)別:1、如果軸為 None, 則將扁平的張量視為向量,而不考慮秩.2、明確支持 "euclidean" 范數(shù)作為默認(rèn)值,包括高階張量.

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)