SAMMaskDecoder 層

[原始碼]

SAMMaskDecoder 類別

keras_hub.layers.SAMMaskDecoder(
    hidden_size,
    num_layers,
    intermediate_dim,
    num_heads,
    embedding_dim=256,
    num_multimask_outputs=3,
    iou_head_depth=3,
    iou_head_hidden_dim=256,
    activation="gelu",
    **kwargs
)

用於 Segment Anything Model (SAM) 的遮罩解碼器。

這個輕量級模組能有效地將影像嵌入和一組提示嵌入對應到一個輸出遮罩。在應用 Transformer 解碼器之前,此層會先將一個學習到的輸出 Token 嵌入插入到提示嵌入集中,此 Token 嵌入將用於解碼器的輸出。為了簡化,這些嵌入(不包含影像嵌入)統稱為「Token」。

影像嵌入、位置影像嵌入和 Token 會傳遞通過 Transformer 解碼器。在執行解碼器之後,此層會使用兩個轉置卷積層將更新後的影像嵌入向上取樣 4 倍(現在相對於輸入影像,其解析度縮小了 4 倍)。然後,Token 會再次關注影像嵌入,而更新後的輸出 Token 嵌入會傳遞到一個小的 3 層 MLP,MLP 會輸出一個向量,該向量與向上取樣影像嵌入的通道維度相符。

最後,會透過向上取樣影像嵌入和 MLP 的輸出之間的空間點對點乘積來預測遮罩。

引數

  • hidden_size:整數。TwoWayTransformer 的隱藏層大小。
  • num_layers:整數。TwoWayTransformer 中的層數。
  • intermediate_dim:整數。TwoWayTransformer 的中間維度。
  • num_heads:整數。TwoWayTransformer 中的注意力頭數。
  • embedding_dim:整數,選用。Transformer 解碼器的輸入特徵數。預設為 256
  • num_multimask_outputs:整數,選用。多重遮罩輸出的數量。模型會產生這麼多額外的遮罩。模型產生的遮罩總數為 1 + num_multimask_outputs。預設為 3
  • iou_head_depth:整數,選用。用於預測 IoU 信賴度分數的密集網路深度。預設為 3
  • iou_head_hidden_dim:整數,選用。用於預測 IoU 信賴度分數的密集網路中隱藏層的單元數。預設為 256
  • activation:字串,選用。用於遮罩向上取樣器網路中的啟動函數。預設為 "gelu"