當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.experimental.dispatch_for_unary_elementwise_apis用法及代碼示例


裝飾器覆蓋一元元素 API 的默認實現。

用法

tf.experimental.dispatch_for_unary_elementwise_apis(
    x_type
)

參數

  • x_type 指示何時應調用 api 處理程序的類型注釋。有關受支持的注釋類型的列表,請參閱dispatch_for_api

返回

  • 一個裝飾師。

隻要第一個參數(通常命名為 x )的值與類型注釋 x_type 匹配,裝飾函數(稱為“元素 api 處理程序”)就會覆蓋任何一元元素 API 的默認實現。 elementwise api 處理程序使用兩個參數調用:

elementwise_api_handler(api_func, x)

其中 api_func 是一個接受單個參數並執行元素操作的函數(例如 tf.abs ),而 x 是元素 api 的第一個參數。

以下示例顯示了如何使用此裝飾器更新所有一元元素操作以處理 MaskedTensor 類型:

class MaskedTensor(tf.experimental.ExtensionType):
  values:tf.Tensor
  mask:tf.Tensor
@dispatch_for_unary_elementwise_apis(MaskedTensor)
def unary_elementwise_api_handler(api_func, x):
  return MaskedTensor(api_func(x.values), x.mask)
mt = MaskedTensor([1, -2, -3], [True, False, True])
abs_mt = tf.abs(mt)
print(f"values={abs_mt.values.numpy()}, mask={abs_mt.mask.numpy()}")
values=[1 2 3], mask=[ True False True]

對於接受超出 x 的額外參數的一元元素操作,這些參數不會傳遞給元素 api 處理程序,而是在調用 api_func 時自動添加。例如,在以下示例中,dtype 參數未傳遞給 unary_elementwise_api_handler ,而是由 api_func 添加。

ones_mt = tf.ones_like(mt, dtype=tf.float32)
print(f"values={ones_mt.values.numpy()}, mask={ones_mt.mask.numpy()}")
values=[1.0 1.0 1.0], mask=[ True False True]

注冊的 API

一元元素 API 是:

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.experimental.dispatch_for_unary_elementwise_apis。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。