凯拉斯模型大厦

时间:2018-08-16 22:05:48

标签: python keras

我来自tensorflow,了解更多关于keras的知识,并遇到了这种表示法。我查看了文档,但找不到任何示例。语法是在函数后接括号的变量。

model_input = Input(shape=input_shape)

z = model_input
z = Dropout(dropout_prob[0])(z) # Not sure what this means

我唯一的想法是这可能是一个图层乘法,但是我不确定谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

它是Keras中顺序模型的一部分;如文档here

中所述
  • 一个图层实例是可调用的(在张量上),它返回一个张量
  • 输入张量和输出张量可用于定义一个 型号
  • 可以像Keras顺序模型一样训练这种模型。

因此,在跟踪代码(这只是一部分)之后,首先可能要导入

from keras.layers import Input, Dropout

然后在var“ model_input”中返回张量

model_input = Input(shape=input_shape)

然后可以在张量上调用图层实例,并返回张量

z = model_input
z = Dropout(dropout_prob[0])(z) # This returns another tensor

例如,之后,您可以使用以下模型:

from keras.models import Model

model = Model(inputs=model_input, outputs=z)
model.compile(optimizer='rmsprop',
              loss='categorical_crossentropy',
              metrics=['accuracy'])
model.fit(data, labels)  # starts training

所以现在,重用经过训练的模型变得很容易:您可以通过在张量上调用任何模型,将任何模型视为一个模型,就像这样:

x = Input(shape=(784,))
y = model(x)