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


Python tf.nn.RNNCellResidualWrapper用法及代码示例


RNNCell 包装器,可确保将单元输入添加到输出中。

继承自:Module

用法

tf.nn.RNNCellResidualWrapper(
    *args, **kwargs
)

参数

  • cell RNNCell 的一个实例。
  • residual_fn (可选)将原始单元输入和原始单元输出映射到残差网络的实际单元输出的函数。默认调用nest.map_structure on (lambda i, o:i + o),输入和输出。
  • **kwargs 基础层的关键字参数字典。

属性

  • activity_regularizer 该层输出的可选正则化函数。
  • compute_dtype 层计算的 dtype。

    这相当于 Layer.dtype_policy.compute_dtype 。除非使用混合精度,否则这与 Layer.dtype 相同,即权重的 dtype。

    层会自动将其输入转换为计算 dtype,这会导致计算和输出也位于计算 dtype 中。这是由 Layer.call 中的基础层类完成的,因此如果实现自己的层,则不必插入这些转换。

    compute_dtype 为 float16 或 bfloat16 以保持数值稳定性时,层通常会以更高的精度执行某些内部计算。在这种情况下,输出通常仍然是 float16 或 bfloat16。

  • dtype 层权重的 dtype。

    这相当于 Layer.dtype_policy.variable_dtype 。除非使用混合精度,否则这与 Layer.compute_dtype 相同,即图层计算的 dtype。

  • dtype_policy 与该层关联的 dtype 策略。

    这是 tf.keras.mixed_precision.Policy 的一个实例。

  • dynamic 图层是否动态(eager-only);在构造函数中设置。
  • input 检索层的输入张量。

    仅当该层只有一个输入时才适用,即如果它连接到一个传入层。

  • input_spec InputSpec说明该层输入格式的实例。

    创建图层子类时,可以设置 self.input_spec 以使图层在调用时运行输入兼容性检查。考虑 Conv2D 层:它只能在秩为 4 的单个输入张量上调用。因此,您可以在 __init__() 中设置:

    self.input_spec = tf.keras.layers.InputSpec(ndim=4)

    现在,如果您尝试在不是 4 级的输入上调用图层(例如,形状为 (2,) 的输入,它将引发 nicely-formatted 错误:

    ValueError:Input 0 of layer conv2d is incompatible with the layer:
    expected ndim=4, found ndim=1. Full shape received:[2]

    可以通过input_spec 指定的输入检查包括:

    • 结构(例如,单个输入、2 个输入的列表等)
    • Shape
    • 排名(ndim)
    • Dtype

    有关详细信息,请参阅tf.keras.layers.InputSpec

  • losses 使用添加的损失列表add_loss()API。

    访问此属性时会创建变量正则化张量,因此非常安全:访问 tf.GradientTape 下的 losses 会将梯度传播回相应的变量。

    class MyLayer(tf.keras.layers.Layer):
      def call(self, inputs):
        self.add_loss(tf.abs(tf.reduce_mean(inputs)))
        return inputs
    l = MyLayer()
    l(np.ones((10, 1)))
    l.losses
    [1.0]
    inputs = tf.keras.Input(shape=(10,))
    x = tf.keras.layers.Dense(10)(inputs)
    outputs = tf.keras.layers.Dense(1)(x)
    model = tf.keras.Model(inputs, outputs)
    # Activity regularization.
    len(model.losses)
    0
    model.add_loss(tf.abs(tf.reduce_mean(x)))
    len(model.losses)
    1
    inputs = tf.keras.Input(shape=(10,))
    d = tf.keras.layers.Dense(10, kernel_initializer='ones')
    x = d(inputs)
    outputs = tf.keras.layers.Dense(1)(x)
    model = tf.keras.Model(inputs, outputs)
    # Weight regularization.
    model.add_loss(lambda:tf.reduce_mean(d.kernel))
    model.losses
    [<tf.Tensor:shape=(), dtype=float32, numpy=1.0>]
  • metrics 使用添加的指标列表add_metric()API。
    input = tf.keras.layers.Input(shape=(3,))
    d = tf.keras.layers.Dense(2)
    output = d(input)
    d.add_metric(tf.reduce_max(output), name='max')
    d.add_metric(tf.reduce_min(output), name='min')
    [m.name for m in d.metrics]
    ['max', 'min']
  • non_trainable_weights 该层跟踪的所有不可训练权重的列表。

    不可训练的权重在训练期间不会更新。它们预计将在 call() 中手动更新。

  • output 检索层的输出张量。

    仅当该层只有一个输出时才适用,即如果它连接到一个传入层。

  • output_size
  • state_size
  • supports_masking 该层是否支持使用 compute_mask 计算掩码。
  • trainable
  • trainable_weights 该层跟踪的所有可训练权重的列表。

    可训练权重在训练期间通过梯度下降进行更新。

  • variable_dtype Layer.dtype 的别名,权重的 dtype。
  • weights 返回所有层变量/权重的列表。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.nn.RNNCellResidualWrapper。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。