当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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