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


Python tf.keras.Input用法及代码示例


Input() 用于实例化 Keras 张量。

用法

tf.keras.Input(
    shape=None, batch_size=None, name=None, dtype=None, sparse=None, tensor=None,
    ragged=None, type_spec=None, **kwargs
)

参数

  • shape 一个形状元组(整数),不包括批量大小。例如,shape=(32,) 表示预期输入将是 32 维向量的批次。这个元组的元素可以是 None; 'None' 元素表示形状未知的维度。
  • batch_size 可选的静态批量大小(整数)。
  • name 图层的可选名称字符串。在模型中应该是唯一的(不要重复使用相同的名称两次)。如果未提供,它将自动生成。
  • dtype 输入期望的数据类型,作为字符串 (float32 , float64 , int32 ...)
  • sparse 一个布尔值,指定要创建的占位符是否是稀疏的。 'ragged' 和 'sparse' 中只有一个可以为 True。请注意,如果 sparse 为 False,稀疏张量仍然可以传递到输入中 - 它们将使用默认值 0 进行致密化。
  • tensor 可选的现有张量包装到 Input 层。如果设置,图层将使用此张量的tf.TypeSpec,而不是创建新的占位符张量。
  • ragged 一个布尔值,指定要创建的占位符是否不规则。 'ragged' 和 'sparse' 中只有一个可以为 True。在这种情况下,'shape' 参数中的'None' 值表示参差不齐的尺寸。有关 RaggedTensors 的更多信息,请参阅本指南.
  • type_spec 用于创建输入占位符的 tf.TypeSpec 对象。提供时,除名称之外的所有其他参数都必须为无。
  • **kwargs 不推荐使用的参数支持。支持 batch_shapebatch_input_shape

返回

  • 一个tensor

抛出

  • ValueError 如果同时提供了sparseragged
  • ValueError 如果同时提供了 shape 和( batch_input_shapebatch_shape )。
  • ValueError 如果 shape , tensortype_spec 为无。
  • ValueError 如果 type_spec 之外的参数在传递 type_spec 时为非无。
  • ValueError 如果提供了任何无法识别的参数。

Keras 张量是一个符号tensor-like 对象,我们通过某些属性对其进行扩充,这些属性允许我们仅通过了解模型的输入和输出来构建 Keras 模型。

例如,如果 a , bc 是 Keras 张量,则可以这样做:model = Model(input=[a, b], output=c)

例子:

# this is a logistic regression in Keras
x = Input(shape=(32,))
y = Dense(16, activation='softmax')(x)
model = Model(x, y)

请注意,即使启用了即刻执行,Input 也会生成一个符号 tensor-like 对象(即占位符)。这个符号 tensor-like 对象可以与将张量作为输入的 lower-level TensorFlow 操作一起使用,如下所示:

x = Input(shape=(32,))
y = tf.square(x)  # This op will be treated like a layer
model = Model(x, y)

(此行为不适用于高阶 TensorFlow API,例如控制流并由 tf.GradientTape 直接监视)。

但是,生成的模型不会跟踪用作 TensorFlow 操作输入的任何变量。所有变量的使用都必须发生在 Keras 层中,以确保它们将被模型的权重跟踪。

Keras 输入还可以从任意 tf.TypeSpec 创建占位符,例如:

x = Input(type_spec=tf.RaggedTensorSpec(shape=[None, None],
                                        dtype=tf.float32, ragged_rank=1))
y = x.values
model = Model(x, y)

传递任意 tf.TypeSpec 时,它必须代表整个批次的签名,而不仅仅是一个示例。

相关用法


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