使用 tf.einsum 作為支持計算的層。
用法
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->...ac
或ab...,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=...>
相關用法
- Python tf.keras.layers.experimental.preprocessing.PreprocessingLayer.adapt用法及代碼示例
- Python tf.keras.layers.experimental.preprocessing.HashedCrossing用法及代碼示例
- Python tf.keras.layers.experimental.SyncBatchNormalization用法及代碼示例
- Python tf.keras.layers.experimental.RandomFourierFeatures用法及代碼示例
- Python tf.keras.layers.InputLayer用法及代碼示例
- Python tf.keras.layers.serialize用法及代碼示例
- Python tf.keras.layers.Dropout用法及代碼示例
- Python tf.keras.layers.maximum用法及代碼示例
- Python tf.keras.layers.LayerNormalization用法及代碼示例
- Python tf.keras.layers.Conv2D用法及代碼示例
- Python tf.keras.layers.RepeatVector用法及代碼示例
- Python tf.keras.layers.Multiply用法及代碼示例
- Python tf.keras.layers.Activation用法及代碼示例
- Python tf.keras.layers.Conv1D用法及代碼示例
- Python tf.keras.layers.CategoryEncoding用法及代碼示例
- Python tf.keras.layers.subtract用法及代碼示例
- Python tf.keras.layers.Subtract用法及代碼示例
- Python tf.keras.layers.ZeroPadding3D用法及代碼示例
- Python tf.keras.layers.MaxPool3D用法及代碼示例
- Python tf.keras.layers.Dot用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.layers.experimental.EinsumDense。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。