使用 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。