Input()参数解析

layers.Input(
    shape=None,
    batch_size=None,
    name=None,
    dtype=None,
    sparse=False,
    tensor=None,
    ragged=False,
    **kwargs,
)

Returns:
  A tensor.

参数:
shape: 函数的输入形状,数据的形式为元组(元组参数要为int型),不包含batch大小的那个维度。如果你有某个维度的信息不知道,则可以表示为None

batch_size: 一个可选的参数(整数类型),用来声明你网络训练batch的大小

name: 给你的这层网络创建一个名字,名字应该在你的所有网络层中是不重复的,默认参数为None,系统会自动取名字。

dtype: 你输入的具体的数据的类型。有很多可选的参数,一般情况下我们选择 tf.float32 的类型,因为在精度满足的情况下,float32运算更快。

sparse: 指定要创建的占位符是否为稀疏的布尔值。 “参差的”和“稀疏的”中只有一个是真的。 请注意,如果sparse为False,稀疏张量仍然可以被传递到输入中——它们将被致密化为默认值0。

tensor: 一个可选的参数,将现有张量包装到输入层。如果设置了,图层将对这个张量使用 tf.TypeSpec。 而不是创建一个新的占位符张量。
ragged: 一个布尔值,指定要创建的占位符是否不规则。 “参差的”和“稀疏的”中只有一个是真的。 在本例中,“shape”参数中的“None”值表示不规则的尺寸。
type_spec: 用来创建输入占位符的TypeSpec对象。 当提供时,除了name之外的所有其他参数都必须为None。
**kwargs: 弃用参数支持。 支持batch_shape和batch_input_shape。也就是通过这个参数,之前的参数也能使用关键字使用。

Returns: .一个tensor张量

为什么要有这个input层

首先、 我们的第一层也就是输入层也是网络的一部分,也是需要各种参数的。如name、shape等等,把其当作网络的一层,就很好理解为什么了,因为我们自己建立的网络没有对输入端口进行一些初始化。

其次、 直接建立的普通的tensor张量,没有外加的一些属性,如
1)._keras_shape: 整型的形状元组通过keras-side 形状推理传播 2)._keras_history: 最后一层应用于张量,整个图层的图可以从那个层,递归地检索出来。
这些外加的属性,使我们通过知道模型的输入和输出来构建keras模型。

一个例子

from tensorflow.keras.layers import Input,Dense
from tensorflow.keras.models import Model

x = Input(shape=(32,))
y = Dense(16, activation='softmax')(x)

model = Model(x, y)
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐