Keras 3.0 известен как Keras Core и был запущен в 2023 году. В этом блоге мы рассмотрим основы Keras 3.0 с примерами кода.
Начнем с установки Keras 3.0. Чтобы установить последнюю версию Keras, используйте следующий код:
!pip install -q keras-core
Keras 3.0 также поддерживает Tensorflow, Torch и Jax. Мы будем использовать «Jax» в качестве бэкенда для этого блога. Чтобы использовать «Jax» в качестве бэкэнда для ядра Keras, используйте следующий код:
import numpy as np import os os.environ["KERAS_BACKEND"] = "jax" import keras_core as keras
Загрузка набора данных
После того, как мы импортировали все необходимые модули, давайте начнем загружать набор данных для базовой модели. Для этой цели мы будем использовать набор данных mnist
. Чтобы загрузить набор данных и разделить его для обучения и тестирования, используйте следующий код:
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data() x_train = x_train.astype("float32") / 255 x_test = x_test.astype("float32") / 255 x_train = np.expand_dims(x_train, -1) x_test = np.expand_dims(x_test, -1) print("x_train shape:", x_train.shape, " Train samples: ", x_train.shape[0]) print("y_train shape:", y_train.shape, "Testing samples: ", x_test.shape[0])
Построить модель
После загрузки набора данных давайте создадим базовую модель для обучения. Вы можете добавлять слои, используя keras.layers.<layer_name>
Давайте построим базовую модель, которая будет обучаться на наборе данных mnist
, и мы также будем использовать ее для прогнозов.
# Model parameters num_classes = 10 input_shape = (28, 28, 1) model = keras.Sequential( [ keras.layers.Input(shape=input_shape), keras.layers.Conv2D(64, kernel_size=(3, 3), activation="relu"), keras.layers.Conv2D(64, kernel_size=(3, 3), activation="relu"), keras.layers.MaxPooling2D(pool_size=(2, 2)), keras.layers.Conv2D(128, kernel_size=(3, 3), activation="relu"), keras.layers.Conv2D(128, kernel_size=(3, 3), activation="relu"), keras.layers.GlobalAveragePooling2D(), keras.layers.Dropout(0.5), keras.layers.Dense(num_classes, activation="softmax"), ] )
Вы можете просмотреть модель, используя следующий код:
print(model.summary())
После построения модели давайте скомпилируем модель, чтобы проверить, есть ли какие-либо ошибки или не совпадают ли какие-либо слои с вводом-выводом. Затем обучите модель для `n` эпох. Для этого используйте следующий код:
model.compile( loss=keras.losses.SparseCategoricalCrossentropy(), optimizer=keras.optimizers.Adam(learning_rate=1e-3), metrics=[ keras.metrics.SparseCategoricalAccuracy(name="acc"), ], ) batch_size = 128 epochs = 15 callbacks = [ keras.callbacks.ModelCheckpoint(filepath="model_at_epoch_{epoch}.keras"), keras.callbacks.EarlyStopping(monitor="val_loss", patience=2), ] model.fit( x_train, y_train, batch_size=batch_size, epochs=epochs, validation_split=0.15, callbacks=callbacks, ) score = model.evaluate(x_test, y_test, verbose=0)
После обучения используйте следующий код для прогнозирования:
predictions = model.predict(x_test)
Это очень простая модель, чтобы понять, как мы можем использовать Keras 3.0 (ядро Keras) для построения новой модели и использования ее для прогнозирования.