python - Keras InputLayer 存在于 Function API 创建的模型中,但不存在于 Sequential API 中?

标签 python machine-learning keras keras-layer

我试图理解 Sequential API(即 Sequential())和 Function API(即 Model())之间的关系,用于在Keras。特别是,我对使用 Function API 生成的模型中存在 InputLayer 对象以及 Sequential 版本中缺少任何对应对象感到困惑。下面显示的两个版本是否等效? InputLayer 对象只是一个什么都不做的占位符?如果不是,需要做什么才能使模型等效?

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

N_in = 10
N_hidden = 10
N_out = 10

# Using Model API
input = Input(shape=(N_in,))
hidden = Dense(N_hidden)(input)
output = Dense(N_out)(hidden)
model1 = Model(input, output)

# Using Sequential API
model2= Sequential()
model2.add(Dense(N_hidden, input_dim=N_in))
model2.add(Dense(N_out))

for i in range(len(model1.layers)):
    print(model1.layers[i])

keras.engine.input_layer.InputLayer object at 0xb333b8c88

keras.layers.core.Dense object at 0xb333b87b8>

keras.layers.core.Dense object at 0xb333b8b00>

for i in range(len(model2.layers)):
    print(model2.layers[i])

keras.layers.core.Dense object at 0xb331eddd8

keras.layers.core.Dense object at 0xb3333dcc0

最佳答案

请注意,每个模型都必须至少有一个输入层,无论它是使用顺序 API 还是功能 API 创建的。不同之处在于 Sequential 模型的输入层is implicitly createdapplied (因此无法通过 .layers 属性访问),而对于使用功能 API 构建的模型,您必须显式定义输入层。

关于python - Keras InputLayer 存在于 Function API 创建的模型中,但不存在于 Sequential API 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53843139/

相关文章:

twitter - Twitter 源的聚类

python - 使用 Keras fit_generator 和 datagen.flow 时出现内存错误

tensorflow - LSTM 中节点数量的影响

Python/PyQt 重新打开 QWebView 显示空白页面

python - 如何在运行时将字符串转换为格式化字符串文字?

python - 在Python中查找数组中不交叉的对并迭代删除,直到没有剩余对

python - 为什么 Python 3 中的复数求幂如此之快?

python - AdaBoost ML算法python实现

machine-learning - Ground Truth 和训练数据集

python - 如何使用 LSTM 生成序列?