CINXE.COM
Developer guides
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content="Keras documentation"> <meta name="author" content="Keras Team"> <link rel="shortcut icon" href="https://keras.io/img/favicon.ico"> <link rel="canonical" href="https://keras.io/guides/" /> <!-- Social --> <meta property="og:title" content="Keras documentation: Developer guides"> <meta property="og:image" content="https://keras.io/img/logo-k-keras-wb.png"> <meta name="twitter:title" content="Keras documentation: Developer guides"> <meta name="twitter:image" content="https://keras.io/img/k-keras-social.png"> <meta name="twitter:card" content="summary"> <title>Developer guides</title> <!-- Custom fonts for this template --> <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700;800&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;600;700;800&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400&display=swap" rel="stylesheet"> <!-- Bootstrap core CSS --> <link href="/css/bootstrap.min.css" rel="stylesheet"> <!-- Custom styles for this template --> <link href="/css/docs.css?v=3" rel="stylesheet"> <link href="/css/monokai.css" rel="stylesheet"> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5DNGF4N'); </script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-175165319-128', 'auto'); ga('send', 'pageview'); </script> <!-- End Google Tag Manager --> <script async defer src="https://buttons.github.io/buttons.js"></script> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5DNGF4N" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div class="k-page"> <div class="hidden"> None </div> <nav class="nav__container"> <div class="nav__wrapper"> <div class="nav__controls--mobile"> <button class="nav__menu--button"><i class="icon--menu"></i></button> <button class="nav__menu--close"><i class="icon--close"></i></button> <a href="/"> <img class="nav__logo nav__logo--mobile" src="/img/k-logo.png" /> </a> <button class="nav__search--mobile"> <i class="icon__search--mobile"></i> </button> </div> <form class="nav__search nav__search-form--mobile"> <input class="nav__search--input" type="search" placeholder="SEARCH" aria-label="Search" /> <button class="nav__search--button" type="submit"> <i class="icon--search"></i> </button> </form> <div class="k-nav nav__mobile-menu" id="nav-menu"> <!-- version with just the active item visible --> <div class="nav flex-column nav-pills" role="tablist" aria-orientation="vertical"> <a class="nav-link" href="/getting_started/" role="tab" aria-selected="">Getting started</a> <a class="nav-link active" href="/guides/" role="tab" aria-selected="">Developer guides</a> <a class="nav-sublink" href="/guides/functional_api/">The Functional API</a> <a class="nav-sublink" href="/guides/sequential_model/">The Sequential model</a> <a class="nav-sublink" href="/guides/making_new_layers_and_models_via_subclassing/">Making new layers & models via subclassing</a> <a class="nav-sublink" href="/guides/training_with_built_in_methods/">Training & evaluation with the built-in methods</a> <a class="nav-sublink" href="/guides/custom_train_step_in_jax/">Customizing `fit()` with JAX</a> <a class="nav-sublink" href="/guides/custom_train_step_in_tensorflow/">Customizing `fit()` with TensorFlow</a> <a class="nav-sublink" href="/guides/custom_train_step_in_torch/">Customizing `fit()` with PyTorch</a> <a class="nav-sublink" href="/guides/writing_a_custom_training_loop_in_jax/">Writing a custom training loop in JAX</a> <a class="nav-sublink" href="/guides/writing_a_custom_training_loop_in_tensorflow/">Writing a custom training loop in TensorFlow</a> <a class="nav-sublink" href="/guides/writing_a_custom_training_loop_in_torch/">Writing a custom training loop in PyTorch</a> <a class="nav-sublink" href="/guides/serialization_and_saving/">Serialization & saving</a> <a class="nav-sublink" href="/guides/customizing_saving_and_serialization/">Customizing saving & serialization</a> <a class="nav-sublink" href="/guides/writing_your_own_callbacks/">Writing your own callbacks</a> <a class="nav-sublink" href="/guides/transfer_learning/">Transfer learning & fine-tuning</a> <a class="nav-sublink" href="/guides/distributed_training_with_jax/">Distributed training with JAX</a> <a class="nav-sublink" href="/guides/distributed_training_with_tensorflow/">Distributed training with TensorFlow</a> <a class="nav-sublink" href="/guides/distributed_training_with_torch/">Distributed training with PyTorch</a> <a class="nav-sublink" href="/guides/distribution/">Distributed training with Keras 3</a> <a class="nav-sublink" href="/guides/migrating_to_keras_3/">Migrating Keras 2 code to Keras 3</a> <a class="nav-link" href="/examples/" role="tab" aria-selected="">Code examples</a> <a class="nav-link" href="/api/" role="tab" aria-selected="">Keras 3 API documentation</a> <a class="nav-link" href="/2/api/" role="tab" aria-selected="">Keras 2 API documentation</a> <a class="nav-link" href="/keras_tuner/" role="tab" aria-selected="">KerasTuner: Hyperparam Tuning</a> <a class="nav-link" href="/keras_hub/" role="tab" aria-selected="">KerasHub: Pretrained Models</a> </div> </div> <a href="/"> <img class="nav__logo nav__logo--desktop" src="/img/logo.png" alt="keras.io logo" /> </a> <div class="nav__menu"> <ul class="nav__item--container"> <li class="nav__item"> <a class="nav__link" href="/getting_started/">Get started</a> </li> <li class="nav__item"> <a class="nav__link nav__link--active" href="/guides/">Guides</a> </li> <li class="nav__item"> <a class="nav__link" href="/api/">API Docs</a> </li> <li class="nav__item"> <a class="nav__link" href="/examples/">Examples</a> </li> <li class="nav__item"> <a class="nav__link" href="/keras_tuner/">Keras Tuner</a> </li> <li class="nav__item"> <a class="nav__link" href="/keras_hub/">Keras Hub</a> </li> </ul> <form class="nav__search"> <input class="nav__search--input" type="search" placeholder="SEARCH" aria-label="Search" /> <button class="nav__search--button" type="submit"> <i class="icon--search"></i> </button> </form> </div> </div> </nav> <div class="page__container flex__container"> <div class="nav__side-nav" id="nav-menu"> <div class="nav flex-column nav-pills" role="tablist" aria-orientation="vertical"> <a class="nav-link active" href="/guides/" role="tab" aria-selected=""> Developer guides </a> <div class="nav-expanded-panel"> <a class="nav-sublink" href="/guides/functional_api/">The Functional API</a> <a class="nav-sublink" href="/guides/sequential_model/">The Sequential model</a> <a class="nav-sublink" href="/guides/making_new_layers_and_models_via_subclassing/">Making new layers & models via subclassing</a> <a class="nav-sublink" href="/guides/training_with_built_in_methods/">Training & evaluation with the built-in methods</a> <a class="nav-sublink" href="/guides/custom_train_step_in_jax/">Customizing `fit()` with JAX</a> <a class="nav-sublink" href="/guides/custom_train_step_in_tensorflow/">Customizing `fit()` with TensorFlow</a> <a class="nav-sublink" href="/guides/custom_train_step_in_torch/">Customizing `fit()` with PyTorch</a> <a class="nav-sublink" href="/guides/writing_a_custom_training_loop_in_jax/">Writing a custom training loop in JAX</a> <a class="nav-sublink" href="/guides/writing_a_custom_training_loop_in_tensorflow/">Writing a custom training loop in TensorFlow</a> <a class="nav-sublink" href="/guides/writing_a_custom_training_loop_in_torch/">Writing a custom training loop in PyTorch</a> <a class="nav-sublink" href="/guides/serialization_and_saving/">Serialization & saving</a> <a class="nav-sublink" href="/guides/customizing_saving_and_serialization/">Customizing saving & serialization</a> <a class="nav-sublink" href="/guides/writing_your_own_callbacks/">Writing your own callbacks</a> <a class="nav-sublink" href="/guides/transfer_learning/">Transfer learning & fine-tuning</a> <a class="nav-sublink" href="/guides/distributed_training_with_jax/">Distributed training with JAX</a> <a class="nav-sublink" href="/guides/distributed_training_with_tensorflow/">Distributed training with TensorFlow</a> <a class="nav-sublink" href="/guides/distributed_training_with_torch/">Distributed training with PyTorch</a> <a class="nav-sublink" href="/guides/distribution/">Distributed training with Keras 3</a> <a class="nav-sublink" href="/guides/migrating_to_keras_3/">Migrating Keras 2 code to Keras 3</a> </div> </div> </div> <div class="k-main"> <div class='k-main-inner' id='k-main-id'> <div class='k-content'> <div class='k-location-slug'> <span class="k-location-slug-pointer">►</span> Developer guides </div> <h1 id="developer-guides">Developer guides</h1> <p>Our developer guides are deep-dives into specific topics such as layer subclassing, fine-tuning, or model saving. They're one of the best ways to become a Keras expert.</p> <p>Most of our guides are written as Jupyter notebooks and can be run in one click in <a href="https://colab.research.google.com/notebooks/welcome.ipynb">Google Colab</a>, a hosted notebook environment that requires no setup and runs in the cloud. Google Colab includes GPU and TPU runtimes.</p> <h2 id="available-guides">Available guides</h2> <ul> <li><a href="/guides/functional_api/">The Functional API</a></li> <li><a href="/guides/sequential_model/">The Sequential model</a></li> <li><a href="/guides/making_new_layers_and_models_via_subclassing/">Making new layers & models via subclassing</a></li> <li><a href="/guides/training_with_built_in_methods/">Training & evaluation with the built-in methods</a></li> <li><a href="/guides/custom_train_step_in_jax/">Customizing <code>fit()</code> with JAX</a></li> <li><a href="/guides/custom_train_step_in_tensorflow/">Customizing <code>fit()</code> with TensorFlow</a></li> <li><a href="/guides/custom_train_step_in_torch/">Customizing <code>fit()</code> with PyTorch</a></li> <li><a href="/guides/writing_a_custom_training_loop_in_jax/">Writing a custom training loop in JAX</a></li> <li><a href="/guides/writing_a_custom_training_loop_in_tensorflow/">Writing a custom training loop in TensorFlow</a></li> <li><a href="/guides/writing_a_custom_training_loop_in_torch/">Writing a custom training loop in PyTorch</a></li> <li><a href="/guides/serialization_and_saving/">Serialization & saving</a></li> <li><a href="/guides/customizing_saving_and_serialization/">Customizing saving & serialization</a></li> <li><a href="/guides/writing_your_own_callbacks/">Writing your own callbacks</a></li> <li><a href="/guides/transfer_learning/">Transfer learning & fine-tuning</a></li> <li><a href="/guides/distributed_training_with_jax/">Distributed training with JAX</a></li> <li><a href="/guides/distributed_training_with_tensorflow/">Distributed training with TensorFlow</a></li> <li><a href="/guides/distributed_training_with_torch/">Distributed training with PyTorch</a></li> <li><a href="/guides/distribution/">Distributed training with Keras 3</a></li> <li><a href="/guides/migrating_to_keras_3/">Migrating Keras 2 code to Keras 3</a></li> </ul> </div> <div class='k-outline'> <div class='k-outline-depth-1'> <a href='#developer-guides'>Developer guides</a> </div> <div class='k-outline-depth-2'> <a href='#available-guides'>Available guides</a> </div> </div> </div> </div> </div> </div> <footer> <div class="footer__container"> <a href="https://policies.google.com/terms">Terms</a> <div>|</div> <a href="https://policies.google.com/privacy">Privacy</a> </div> </footer> <script src="/js/index.js"></script> </body> </html>