keras/README.md

106 lines
4.1 KiB
Markdown
Raw Normal View History

2023-09-22 21:31:54 +00:00
[![](https://github.com/keras-team/keras/workflows/Tests/badge.svg?branch=master)](https://github.com/keras-team/keras/actions?query=workflow%3ATests+branch%3Amaster)
2023-09-22 16:29:36 +00:00
[![](https://badge.fury.io/py/keras.svg)](https://badge.fury.io/py/keras)
2023-09-22 16:29:36 +00:00
# Keras 3: A new multi-backend Keras
2023-05-14 18:51:30 +00:00
2023-09-22 16:29:36 +00:00
Keras 3 is a new multi-backend implementation of the Keras API, with support for TensorFlow, JAX, and PyTorch.
2023-05-14 18:51:30 +00:00
2023-09-22 20:02:42 +00:00
## Installation
### Install with pip
Keras 3 is available as a preview release on PyPI named `keras-core`.
Keras 2 (`tf.keras`) is distributed along with the `tensorflow` package.
1. Install `keras-core`:
```
pip install keras-core
```
2. Install backend package(s).
To use keras-core, you should also install the backend of choice: `tensorflow`, `jax`, or `torch`.
Note that `tensorflow` is required for using certain Keras 3 features: certain preprocessing layers
as well as `tf.data` pipelines.
2023-09-27 22:00:06 +00:00
**Note:** If you are using the `keras-core` package you also need to switch your Keras import.
Use `import keras_core as keras`. This is a temporary step until the release of Keras 3 on PyPI.
2023-09-22 20:02:42 +00:00
### Local installation
2023-06-09 04:53:02 +00:00
2023-09-22 16:29:36 +00:00
Keras 3 is compatible with Linux and MacOS systems. To install a local development version:
2023-06-12 00:29:43 +00:00
1. Install dependencies:
```
pip install -r requirements.txt
```
2. Run installation command from the root directory.
```
python pip_build.py --install
```
2023-09-22 20:02:42 +00:00
3. Add accelerator support for the backend(s) of your choice.
The `requirements.txt` file will install a CPU-only version of TensorFlow, JAX,
and PyTorch. Full instruction for installing `tensorflow`, `jax`, or `torch`
with accelerator support can be found on the respective project websites.
2023-06-09 04:53:02 +00:00
2023-06-09 16:07:04 +00:00
## 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"
```
2023-07-07 18:02:20 +00:00
In Colab, you can do:
```python
import os
os.environ["KERAS_BACKEND"] = "jax"
2023-09-27 22:00:06 +00:00
import keras
2023-07-07 18:02:20 +00:00
```
2023-09-11 16:39:48 +00:00
2023-09-22 16:29:36 +00:00
**Note:** The backend must be configured before importing `keras`, and the backend cannot be changed after
the package has been imported.
2023-09-11 16:39:48 +00:00
2023-05-14 18:51:30 +00:00
## Backwards compatibility
2023-09-22 16:29:36 +00:00
Keras 3 is intended to work as a drop-in replacement for `tf.keras` (when using the TensorFlow backend). Just take your
2023-09-27 22:00:06 +00:00
existing `tf.keras` code, make sure that your calls to `model.save()` are using the up-to-date `.keras` format, and you're
done.
2023-05-14 18:51:30 +00:00
2023-07-11 17:02:40 +00:00
If your `tf.keras` model does not include custom components, you can start running it on top of JAX or PyTorch immediately.
2023-06-09 01:09:10 +00:00
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.
2023-05-14 21:17:39 +00:00
In addition, Keras models can consume datasets in any format, regardless of the backend you're using:
2023-07-07 18:02:20 +00:00
you can train your models with your existing `tf.data.Dataset` pipelines or PyTorch `DataLoaders`.
2023-05-14 21:17:39 +00:00
2023-09-22 20:02:42 +00:00
## Keras 3 timeline
At the moment, we are releasing Keras 3 as a preview release with under the `keras-core` name on PyPI. We encourage anyone
interested in the future of the library to try it out and give feedback.
You can find the current stable release of Keras 2 at the [tf-keras](https://github.com/keras-team/tf-keras) repository.
We will share updates on the release timeline as soon as they are available.
2023-09-22 16:29:36 +00:00
## Why use Keras 3?
2023-05-14 18:51:30 +00:00
2023-06-09 01:09:10 +00:00
- 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.