我在哪里可以找到类Input的API文档?

时间:2017-05-03 16:22:25

标签: keras

在哪里可以找到班级keras.layers.Input的API文档?我无法在https://keras.io/找到它。

2 个答案:

答案 0 :(得分:42)

当你不熟悉Keras时,很难通过该文档。

但是建立keras模型有两种方法:

  • Sequential型号
  • Model功能API

Input图层不与Sequential模型一起使用,仅与Model一起使用。

可能没有明确的文档,因为除了为模型定义输入数据的形状外,Input图层绝对没有任何作用。 (实际上它会创建一个" tensor"您可以将其用作其他图层的输入)。

想象一下,您正在创建一个采用MNIST数据批量处理的模型,该数据具有28x28像素图像。然后,您的输入形状为(28,28)(请参阅*)。

创建模型时,只需使用Input来定义:

#inp will be a tensor with shape (?, 28, 28)
inp = Input((28,28))

以下图层将使用此输入:

x = SomeKerasLayer(blablabla)(inp)     
x = SomeOtherLayer(blablabla)(x)    
output = TheLastLayer(balblabla)(x)

当你创建模型时,你定义了数据将遵循的路径,在这种情况下是从输入到输出:

model = Model(inp,output)

使用Model api,还可以创建分支,多个输入和多个输出,分支等。

如果有多个输入,您可以创建多个Input图层。

有关实际图层的更多高级示例,请参阅此处:https://keras.io/getting-started/functional-api-guide/

* - 这不是一个规则。根据您格式化输入数据的方式,此形状可能会发生变化。有些模型不喜欢关注2D信息,而是使用形状为(784,)的扁平图像。将使用卷积层的模型通常将输入数据整形为(28,28,1),即具有一个通道的图像。 (通常,图像有3个通道,RGB)。

Input

的参数

Input方法的代码定义为here(2017年12月22日)

可能的论点:

  • 形状:定义单个样本的形状,具有可变批量大小(如上所示)
  • batch_shape :明确定义传递形状中批次的大小
  • tensor :不是将输入形状传递给模型,而是传递现有的张量,例如,您可以传递填充了值的张量,例如K.variable()
  • 其他参数:namedtypesparse

答案 1 :(得分:1)

上述答案总结了大部分内容。但正如评论中所述,我认为tf.contrib.keras包含有关keras的文档。 This链接包含相同的文档。

如接受的答案中所述,Input可与model一起用于表示张量。事实上,它会返回一个张量。我理解它的方式是,它有点类似于tf.placeholder,因为它允许我们仅根据Input对象定义模型,并在以后适合模型。以下是tensorflow文档中的示例。

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

在这里可以看到Input的用法与tf.placeholder

的用法有些相似