Keras - это API-интерфейс для глубокого обучения (DL) высокого уровня. Ключевые компоненты API:
Модель - для определения нейронной сети (NN).
Слои - строительные блоки модели NN (например, плотность, свертка).
Оптимизаторы - различные методы градиентного спуска для изучения весов NN (например, SGD, Адам).
Потери - целевые функции, которые оптимизатор должен минимизировать для таких случаев использования, как классификация, регрессия (например, categoryorical_crossentropy, MSE).
Кроме того, он предоставляет разумные значения по умолчанию для API, например, курсы обучения для Оптимизаторов, которые будут работать для общих случаев использования. Это снижает когнитивную нагрузку на пользователя на этапе обучения.
Раздел «Руководящие принципы» здесь очень информативен:
https://keras.io/
Математические операции, связанные с запуском самих нейронных сетей, такие как свертки, умножение матриц и т. Д., Делегируются бэкэнду. Один
бэкэндами, поддерживаемыми Keras, является Tensorflow.
Чтобы выделить различия с помощью фрагмента кода:
Keras
# Define Neural Network
model = Sequential()
# Add Layers to the Network
model.add(Dense(512, activation='relu', input_shape=(784,)))
....
# Define objective function and optimizer
model.compile(loss='categorical_crossentropy',
optimizer=Adam(),
metrics=['accuracy'])
# Train the model for certain number of epochs by feeding train/validation data
history = model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(x_test, y_test))
Tensorflow
Это больше не фрагмент кода :), поскольку вам нужно определить все, начиная с переменных, которые будут хранить веса, связи между слоями, цикл обучения, создание пакетов данных для обучения и т. Д.
Вы можете обратиться к ссылкам ниже, чтобы понять сложность кода, обучив MNIST (пример DL Hello world) в Keras vs Tensorflow.
https://github.com/keras-team/keras/blob/master/examples/mnist_mlp.py
https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/multilayer_perceptron.py
Учитывая преимущества, которые дает Keras, Tensorflow сделал tf.keras высокоуровневым API в Tensorflow 2.0.
https://www.tensorflow.org/tutorials/