Keras:layers.Input和layers.InputLayer有什么区别?

6
什么时候应该使用Input,什么时候应该使用InputLayer?在源代码中有一些描述,但我不确定它们的含义。 InputLayer
用作图形入口点的层。 它可以包装现有张量(传递input_tensor参数)或创建其占位符张量(除了dtype外,还传递input_shapebatch_input_shape参数)。 InputInput()用于实例化Keras张量。 Keras张量是来自底层后端(Theano或TensorFlow)的张量对象,我们使用某些属性增强其功能,这使我们能够仅通过知道模型的输入和输出就能构建Keras模型。

1
我从未使用过InputLayer。我总是使用Input()来生成输入张量。我也从未见过使用InputLayer的示例。 - Daniel Möller
我不确定谁是对的(是否应该使用InputLayer),但我确定它是TF自己版本问题的一部分。这与混合tf.keraskeras.*(使用Tensorflow后端)带来的问题相结合。 - Tomasz Gandor
2个回答

2

我认为InputLayer已经随着图形模型一起被弃用了。建议您使用Input,因为Keras文档中的所有示例都使用它。


2
你在哪里看到 InputLayer 被弃用了?TensorFlow 2 仍然支持它:https://www.tensorflow.org/api_docs/python/tf/keras/layers/InputLayer。 - nbro
你说得对,我找不到任何相关的参考资料。老实说,我不记得我从哪里得到这个信息了。这就是为什么人们应该总是提供此类声明的来源... 无论如何,这两个线程似乎提供了一个很好的解释 https://dev59.com/wVYO5IYBdhLWcg3wOPFL 和 https://dev59.com/GFcO5IYBdhLWcg3wy0r6 - Michele Tonutti

0

InputLayer是一个可调用的对象,就像其他Keras层一样,而Input不是可调用的,它只是一个张量对象。

当您需要将其连接到以下层时,可以使用InputLayer

inp = keras.layers.InputLayer(input_shape=(32,))(prev_layer)

以下是使用Input层的方法:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接