From a25a5818d33d16dd49efc25830588f596be35883 Mon Sep 17 00:00:00 2001 From: Francois Chollet Date: Fri, 22 Sep 2023 11:12:17 -0700 Subject: [PATCH] Update README --- README.md | 84 ++++++------------------------------------------------- 1 file changed, 9 insertions(+), 75 deletions(-) diff --git a/README.md b/README.md index 7d8bb0e5c..1e61e235f 100644 --- a/README.md +++ b/README.md @@ -1,78 +1,12 @@ -[![](https://github.com/keras-team/keras-core/workflows/Tests/badge.svg?branch=main)](https://github.com/keras-team/keras-core/actions?query=workflow%3ATests+branch%3Amain) -[![](https://badge.fury.io/py/keras-core.svg)](https://badge.fury.io/py/keras-core) +# Keras Core is becoming Keras 3 and has moved to keras-team/keras -# Keras Core: A new multi-backend Keras +Multi-backend Keras has a new repo: [keras-team/keras](https://github.com/keras-team/keras). +Open any issues / PRs there. `keras-team/keras-core` is no longer in use. -Keras Core is a new multi-backend implementation of the Keras API, with support for TensorFlow, JAX, and PyTorch. +**Keras Core** was the codename of the multi-backend Keras project throughout its initial development +(April 2023 - July 2023) and its public beta test (July 2023 - September 2023). Now, Keras Core +is gearing up to become Keras 3, to be released under the `keras` name. As such, we've moved development +back to [keras-team/keras](https://github.com/keras-team/keras). -**WARNING:** At this time, this package is experimental. -It has rough edges and not everything might work as expected. -We are currently hard at work improving it. - -Once ready, this package will become Keras 3.0 and subsume `tf.keras`. - -## Local installation - -Keras Core is compatible with Linux and MacOS systems. To install a local development version: - -1. Install dependencies: - -``` -pip install -r requirements.txt -``` - -2. Run installation command from the root directory. - -``` -python pip_build.py --install -``` - -You should also install your backend of choice: `tensorflow`, `jax`, or `torch`. -Note that `tensorflow` is required for using certain Keras Core features: certain preprocessing layers as -well as `tf.data` pipelines. - -## Configuring your backend - -You can export the environment variable `KERAS_BACKEND` or you can edit your local config file at `~/.keras/keras.json` -to configure your backend. Available backend options are: `"tensorflow"`, `"jax"`, `"torch"`. Example: - -``` -export KERAS_BACKEND="jax" -``` - -In Colab, you can do: - -```python -import os -os.environ["KERAS_BACKEND"] = "jax" - -import keras_core as keras -``` - -**Note:** The backend must be configured before importing `keras_core`, and the backend cannot be changed after -the package has been imported. - -## Backwards compatibility - -Keras Core is intended to work as a drop-in replacement for `tf.keras` (when using the TensorFlow backend). Just take your -existing `tf.keras` code, change the `keras` imports to `keras_core`, make sure that your calls to `model.save()` are using -the up-to-date `.keras` format, and you're done. - -If your `tf.keras` model does not include custom components, you can start running it on top of JAX or PyTorch immediately. - -If it does include custom components (e.g. custom layers or a custom `train_step()`), it is usually possible to convert it -to a backend-agnostic implementation in just a few minutes. - -In addition, Keras models can consume datasets in any format, regardless of the backend you're using: -you can train your models with your existing `tf.data.Dataset` pipelines or PyTorch `DataLoaders`. - -## Why use Keras Core? - -- Run your high-level Keras workflows on top of any framework -- benefiting at will from the advantages of each framework, -e.g. the scalability and performance of JAX or the production ecosystem options of TensorFlow. -- Write custom components (e.g. layers, models, metrics) that you can use in low-level workflows in any framework. - - You can take a Keras model and train it in a training loop written from scratch in native TF, JAX, or PyTorch. - - You can take a Keras model and use it as part of a PyTorch-native `Module` or as part of a JAX-native model function. -- Make your ML code future-proof by avoiding framework lock-in. -- As a PyTorch user: get access to power and usability of Keras, at last! -- As a JAX user: get access to a fully-featured, battle-tested, well-documented modeling and training library. +Meanwhile, the legacy `tf.keras` codebase is now available at +[keras-team/tf-keras](https://github.com/keras-team/keras).