Это способ создания ваших моделей. Можно использовать последовательные модели (учебник здесь ):
Например:
from keras.models import Sequential
from keras.layers import Dense, Activation
model = Sequential([
Dense(32, input_shape=(784,)),
Activation('relu'),
Dense(10),
Activation('softmax'),
])
И вы можете вызвать его с помощью функций ввода. Второй подход является функциональным (учебник здесь ). Вы называете каждый слой следующим, что позволяет вам иметь большую гибкость при создании модели, например:
from keras.layers import Input, Dense
from keras.models import Model
# This returns a tensor
inputs = Input(shape=(784,))
# a layer instance is callable on a tensor, and returns a tensor
output_1 = Dense(64, activation='relu')(inputs)
# you call layer with another layer to create model
output_2 = Dense(64, activation='relu')(output_1)
predictions = Dense(10, activation='softmax')(output_2)
# This creates a model that includes
# the Input layer and three Dense layers
model = Model(inputs=inputs, outputs=predictions)
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(data, labels) # starts training
Вы также можете создать подкласс Model
, аналогично тому, что Chainer или PyTorch предоставляют пользователю,но это используется в Керасе.