在哪里可以找到班级keras.layers.Input
的API文档?我无法在https://keras.io/找到它。
答案 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日)
可能的论点:
K.variable()
。 name
,dtype
和sparse
。答案 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