在Keras中使用和不使用Sequential()建立模型之间有什么区别?

时间:2018-08-22 17:59:15

标签: python machine-learning keras deep-learning

我有2个build_model函数,如下所示:

def build_model01():
    X_input = Input(shape=(784,))
    Y = Dense(1, activation='sigmoid')(X_input)
    model = Model(inputs = X_input, outputs = Y, name='build_model')
    return model

def build_model02():
    model = Sequential()
    model.add(Dense(input_dim=784,units=1,activation='sigmoid'))
    return model

build_model01build_model02有什么区别?它们实际上是一样的吗?差异会影响其他层吗?

1 个答案:

答案 0 :(得分:2)

实际上,使用功能性API创建的模型(即build_model01)与作为顺序模型创建的相同模型(即build_model02)之间没有区别。您可以通过检查Sequentialsource code来进一步确认。如您所见,它是Model类的子类。当然,使用Keras功能API gives you more flexibility,它可以让您创建具有复杂架构的模型(例如,具有多个输入/输出或多个分支的模型)。