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


Python tf.keras.Input用法及代碼示例


Input() 用於實例化 Keras 張量。

用法

tf.keras.Input(
    shape=None, batch_size=None, name=None, dtype=None, sparse=None, tensor=None,
    ragged=None, type_spec=None, **kwargs
)

參數

  • shape 一個形狀元組(整數),不包括批量大小。例如,shape=(32,) 表示預期輸入將是 32 維向量的批次。這個元組的元素可以是 None; 'None' 元素表示形狀未知的維度。
  • batch_size 可選的靜態批量大小(整數)。
  • name 圖層的可選名稱字符串。在模型中應該是唯一的(不要重複使用相同的名稱兩次)。如果未提供,它將自動生成。
  • dtype 輸入期望的數據類型,作為字符串 (float32 , float64 , int32 ...)
  • sparse 一個布爾值,指定要創建的占位符是否是稀疏的。 'ragged' 和 'sparse' 中隻有一個可以為 True。請注意,如果 sparse 為 False,稀疏張量仍然可以傳遞到輸入中 - 它們將使用默認值 0 進行致密化。
  • tensor 可選的現有張量包裝到 Input 層。如果設置,圖層將使用此張量的tf.TypeSpec,而不是創建新的占位符張量。
  • ragged 一個布爾值,指定要創建的占位符是否不規則。 'ragged' 和 'sparse' 中隻有一個可以為 True。在這種情況下,'shape' 參數中的'None' 值表示參差不齊的尺寸。有關 RaggedTensors 的更多信息,請參閱本指南.
  • type_spec 用於創建輸入占位符的 tf.TypeSpec 對象。提供時,除名稱之外的所有其他參數都必須為無。
  • **kwargs 不推薦使用的參數支持。支持 batch_shapebatch_input_shape

返回

  • 一個tensor

拋出

  • ValueError 如果同時提供了sparseragged
  • ValueError 如果同時提供了 shape 和( batch_input_shapebatch_shape )。
  • ValueError 如果 shape , tensortype_spec 為無。
  • ValueError 如果 type_spec 之外的參數在傳遞 type_spec 時為非無。
  • ValueError 如果提供了任何無法識別的參數。

Keras 張量是一個符號tensor-like 對象,我們通過某些屬性對其進行擴充,這些屬性允許我們僅通過了解模型的輸入和輸出來構建 Keras 模型。

例如,如果 a , bc 是 Keras 張量,則可以這樣做:model = Model(input=[a, b], output=c)

例子:

# this is a logistic regression in Keras
x = Input(shape=(32,))
y = Dense(16, activation='softmax')(x)
model = Model(x, y)

請注意,即使啟用了即刻執行,Input 也會生成一個符號 tensor-like 對象(即占位符)。這個符號 tensor-like 對象可以與將張量作為輸入的 lower-level TensorFlow 操作一起使用,如下所示:

x = Input(shape=(32,))
y = tf.square(x)  # This op will be treated like a layer
model = Model(x, y)

(此行為不適用於高階 TensorFlow API,例如控製流並由 tf.GradientTape 直接監視)。

但是,生成的模型不會跟蹤用作 TensorFlow 操作輸入的任何變量。所有變量的使用都必須發生在 Keras 層中,以確保它們將被模型的權重跟蹤。

Keras 輸入還可以從任意 tf.TypeSpec 創建占位符,例如:

x = Input(type_spec=tf.RaggedTensorSpec(shape=[None, None],
                                        dtype=tf.float32, ragged_rank=1))
y = x.values
model = Model(x, y)

傳遞任意 tf.TypeSpec 時,它必須代表整個批次的簽名,而不僅僅是一個示例。

相關用法


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