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


Python tf.keras.layers.experimental.EinsumDense用法及代碼示例


使用 tf.einsum 作為支持計算的層。

繼承自:LayerModule

用法

tf.keras.layers.experimental.EinsumDense(
    equation, output_shape, activation=None, bias_axes=None,
    kernel_initializer='glorot_uniform',
    bias_initializer='zeros', kernel_regularizer=None,
    bias_regularizer=None, activity_regularizer=None, kernel_constraint=None,
    bias_constraint=None, **kwargs
)

參數

  • equation 說明要執行的 einsum 的方程。此等式必須是格式為 ab,bc->ac , ...ab,bc->...acab...,bc->ac... 的有效 einsum 字符串,其中 'ab'、'bc' 和 'ac' 可以是任何有效的 einsum 軸表達式序列。
  • output_shape 輸出張量的預期形狀(不包括批量維度和由橢圓表示的任何維度)。您可以為任何未知或可以從輸入形狀推斷的維度指定無。
  • activation 要使用的激活函數。如果您未指定任何內容,則不會應用激活(即 "linear" 激活:a(x) = x )。
  • bias_axes 包含要應用偏差的輸出維度的字符串。 bias_axes 字符串中的每個字符都應對應於equation 字符串的輸出部分中的一個字符。
  • kernel_initializer kernel 權重矩陣的初始化程序。
  • bias_initializer 偏置向量的初始化器。
  • kernel_regularizer 應用於kernel 權重矩陣的正則化函數。
  • bias_regularizer 應用於偏置向量的正則化函數。
  • activity_regularizer 應用於層輸出的正則化函數(其"activation")..
  • kernel_constraint 應用於kernel 權重矩陣的約束函數。
  • bias_constraint 應用於偏置向量的約束函數。

該層可以執行任意維度的 einsum 計算。

例子:

帶有 einsum 的偏置密集層

這個例子展示了如何使用 einsum 操作來實例化一個標準的 Keras 密集層。此示例等效於 tf.keras.layers.Dense(64, use_bias=True)

layer = EinsumDense("ab,bc->ac", output_shape=64, bias_axes="c")
input_tensor = tf.keras.Input(shape=[32])
output_tensor = layer(input_tensor)
output_tensor
<... shape=(None, 64) dtype=...>

將密集層應用於序列

這個例子展示了如何實例化一個層,該層將相同的密集操作應用於序列中的每個元素。這裏,'output_shape' 有兩個值(因為輸出中有兩個非批量維度); output_shape 中的第一個維度是 None ,因為序列維度 b 具有未知形狀。

layer = EinsumDense("abc,cd->abd",
                    output_shape=(None, 64),
                    bias_axes="d")
input_tensor = tf.keras.Input(shape=[32, 128])
output_tensor = layer(input_tensor)
output_tensor
<... shape=(None, 32, 64) dtype=...>

使用橢圓將密集層應用於序列

此示例顯示如何實例化一個層,該層將相同的密集操作應用於序列中的每個元素,但使用省略號表示法而不是指定批次和序列維度。

因為我們使用省略號並且隻指定了一個軸,所以 output_shape arg 是一個值。當以這種方式實例化時,該層可以處理任意數量的序列維度——包括不存在序列維度的情況。

layer = EinsumDense("...x,xy->...y", output_shape=64, bias_axes="y")
input_tensor = tf.keras.Input(shape=[32, 128])
output_tensor = layer(input_tensor)
output_tensor
<... shape=(None, 32, 64) dtype=...>

相關用法


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