CINXE.COM
KerasHub
<!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/keras_hub/" /> <!-- Social --> <meta property="og:title" content="Keras documentation: KerasHub"> <meta property="og:image" content="https://keras.io/img/logo-k-keras-wb.png"> <meta name="twitter:title" content="Keras documentation: KerasHub"> <meta name="twitter:image" content="https://keras.io/img/k-keras-social.png"> <meta name="twitter:card" content="summary"> <title>KerasHub</title> <!-- Bootstrap core CSS --> <link href="/css/bootstrap.min.css" rel="stylesheet"> <!-- Custom fonts for this template --> <link href="https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;600;700;800&display=swap" rel="stylesheet"> <!-- Custom styles for this template --> <link href="/css/docs.css" 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> </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="k-nav" id="nav-menu"> <a href='/'><img src='/img/logo-small.png' class='logo-small' /></a> <div class="nav flex-column nav-pills" role="tablist" aria-orientation="vertical"> <a class="nav-link" href="/about/" role="tab" aria-selected="">About Keras</a> <a class="nav-link" href="/getting_started/" role="tab" aria-selected="">Getting started</a> <a class="nav-link" href="/guides/" role="tab" aria-selected="">Developer guides</a> <a class="nav-link" href="/api/" role="tab" aria-selected="">Keras 3 API documentation</a> <a class="nav-link" href="/2.18/api/" role="tab" aria-selected="">Keras 2 API documentation</a> <a class="nav-link" href="/examples/" role="tab" aria-selected="">Code examples</a> <a class="nav-link" href="/keras_tuner/" role="tab" aria-selected="">KerasTuner: Hyperparameter Tuning</a> <a class="nav-link active" href="/keras_hub/" role="tab" aria-selected="">KerasHub: Pretrained Models</a> <a class="nav-link" href="/keras_cv/" role="tab" aria-selected="">KerasCV: Computer Vision Workflows</a> <a class="nav-link" href="/keras_nlp/" role="tab" aria-selected="">KerasNLP: Natural Language Workflows</a> </div> </div> <div class='k-main'> <div class='k-main-top'> <script> function displayDropdownMenu() { e = document.getElementById("nav-menu"); if (e.style.display == "block") { e.style.display = "none"; } else { e.style.display = "block"; document.getElementById("dropdown-nav").style.display = "block"; } } function resetMobileUI() { if (window.innerWidth <= 840) { document.getElementById("nav-menu").style.display = "none"; document.getElementById("dropdown-nav").style.display = "block"; } else { document.getElementById("nav-menu").style.display = "block"; document.getElementById("dropdown-nav").style.display = "none"; } var navmenu = document.getElementById("nav-menu"); var menuheight = navmenu.clientHeight; var kmain = document.getElementById("k-main-id"); kmain.style.minHeight = (menuheight + 100) + 'px'; } window.onresize = resetMobileUI; window.addEventListener("load", (event) => { resetMobileUI() }); </script> <div id='dropdown-nav' onclick="displayDropdownMenu();"> <svg viewBox="-20 -20 120 120" width="60" height="60"> <rect width="100" height="20"></rect> <rect y="30" width="100" height="20"></rect> <rect y="60" width="100" height="20"></rect> </svg> </div> <form class="bd-search d-flex align-items-center k-search-form" id="search-form"> <input type="search" class="k-search-input" id="search-input" placeholder="Search Keras documentation..." aria-label="Search Keras documentation..." autocomplete="off"> <button class="k-search-btn"> <svg width="13" height="13" viewBox="0 0 13 13"><title>search</title><path d="m4.8495 7.8226c0.82666 0 1.5262-0.29146 2.0985-0.87438 0.57232-0.58292 0.86378-1.2877 0.87438-2.1144 0.010599-0.82666-0.28086-1.5262-0.87438-2.0985-0.59352-0.57232-1.293-0.86378-2.0985-0.87438-0.8055-0.010599-1.5103 0.28086-2.1144 0.87438-0.60414 0.59352-0.8956 1.293-0.87438 2.0985 0.021197 0.8055 0.31266 1.5103 0.87438 2.1144 0.56172 0.60414 1.2665 0.8956 2.1144 0.87438zm4.4695 0.2115 3.681 3.6819-1.259 1.284-3.6817-3.7 0.0019784-0.69479-0.090043-0.098846c-0.87973 0.76087-1.92 1.1413-3.1207 1.1413-1.3553 0-2.5025-0.46363-3.4417-1.3909s-1.4088-2.0686-1.4088-3.4239c0-1.3553 0.4696-2.4966 1.4088-3.4239 0.9392-0.92727 2.0864-1.3969 3.4417-1.4088 1.3553-0.011889 2.4906 0.45771 3.406 1.4088 0.9154 0.95107 1.379 2.0924 1.3909 3.4239 0 1.2126-0.38043 2.2588-1.1413 3.1385l0.098834 0.090049z"></path></svg> </button> </form> <script> var form = document.getElementById('search-form'); form.onsubmit = function(e) { e.preventDefault(); var query = document.getElementById('search-input').value; window.location.href = '/search.html?query=' + query; return False } </script> </div> <div class='k-main-inner' id='k-main-id'> <div class='k-location-slug'> <span class="k-location-slug-pointer">►</span> KerasHub </div> <div class='k-content'> <h1 id="kerashub">KerasHub</h1> <p><a class="github-button" href="https://github.com/keras-team/keras-hub" data-size="large" data-show-count="true" aria-label="Star keras-team/keras-hub on GitHub">Star</a></p> <p><strong>KerasHub</strong> is a pretrained modeling library that aims to be simple, flexible, and fast. The library provides <a href="https://keras.io/keras_3/">Keras 3</a> implementations of popular model architectures, paired with a collection of pretrained checkpoints available on <a href="https://kaggle.com/models/">Kaggle Models</a>. Models can be use for both training and inference, on any of the TensorFlow, Jax, and Torch backends.</p> <p>KerasHub is an extension of the core Keras API; KerasHub components are provide as <a href="/api/layers/"><code>Layers</code></a> and <a href="/api/models/"><code>Models</code></a>. If you are familiar with Keras, congratulations! You already understand most of KerasHub.</p> <p>See our <a href="/guides/keras_hub/getting_started">Getting Started guide</a> to start learning our API. We welcome <a href="https://github.com/keras-team/keras-hub/issues/1835">contributions</a>.</p> <hr /> <h2 id="quick-links">Quick links</h2> <ul> <li><a href="/api/keras_hub/">KerasHub API reference</a></li> <li><a href="https://github.com/keras-team/keras-hub">KerasHub on GitHub</a></li> <li><a href="https://www.kaggle.com/organizations/keras/models">KerasHub models on Kaggle</a></li> <li><a href="/api/keras_hub/models/">List of available pretrained models</a></li> </ul> <h2 id="guides">Guides</h2> <ul> <li><a href="/guides/keras_hub/getting_started/">Getting Started with KerasHub</a></li> <li><a href="/guides/keras_hub/classification_with_keras_hub/">Classification with KerasHub</a></li> <li><a href="/guides/keras_hub/segment_anything_in_keras_hub/">Segment Anything in KerasHub</a></li> <li><a href="/guides/keras_hub/semantic_segmentation_deeplab_v3/">Semantic Segmentation with KerasHub</a></li> <li><a href="/guides/keras_hub/stable_diffusion_3_in_keras_hub/">Stable Diffusion 3 in KerasHub</a></li> <li><a href="/guides/keras_hub/transformer_pretraining/">Pretraining a Transformer from scratch with KerasHub</a></li> <li><a href="/guides/keras_hub/upload/">Uploading Models with KerasHub</a></li> </ul> <hr /> <h2 id="installation">Installation</h2> <p>To install the latest KerasHub release with Keras 3, simply run:</p> <div class="codehilite"><pre><span></span><code>pip install --upgrade keras-hub </code></pre></div> <p>To install the latest nightly changes for both KerasHub and Keras, you can use our nightly package.</p> <div class="codehilite"><pre><span></span><code>pip install --upgrade keras-hub-nightly </code></pre></div> <p>Note that currently, installing KerasHub will always pull in TensorFlow for use of the <a href="https://www.tensorflow.org/api_docs/python/tf/data"><code>tf.data</code></a> API for preprocessing. Even when pre-processing with <a href="https://www.tensorflow.org/api_docs/python/tf/data"><code>tf.data</code></a>, training can still happen on any backend.</p> <p>Read <a href="https://keras.io/getting_started/">Getting started with Keras</a> for more information on installing Keras 3 and compatibility with different frameworks.</p> <p><strong>Note:</strong> We recommend using KerasHub with TensorFlow 2.16 or later, as TF 2.16 packages Keras 3 by default.</p> <hr /> <h2 id="quickstart">Quickstart</h2> <p>Below is a quick example using ResNet to predict an image, and BERT to train a classifier:</p> <div class="codehilite"><pre><span></span><code><span class="kn">import</span> <span class="nn">os</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="p">[</span><span class="s2">"KERAS_BACKEND"</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"jax"</span> <span class="c1"># Or "tensorflow" or "torch"!</span> <span class="kn">import</span> <span class="nn">keras</span> <span class="kn">import</span> <span class="nn">keras_hub</span> <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> <span class="kn">import</span> <span class="nn">tensorflow_datasets</span> <span class="k">as</span> <span class="nn">tfds</span> <span class="c1"># Load a ResNet model.</span> <span class="n">classifier</span> <span class="o">=</span> <span class="n">keras_hub</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">ImageClassifier</span><span class="o">.</span><span class="n">from_preset</span><span class="p">(</span> <span class="s2">"resnet_50_imagenet"</span><span class="p">,</span> <span class="n">activation</span><span class="o">=</span><span class="s2">"softmax"</span><span class="p">,</span> <span class="p">)</span> <span class="c1"># Predict a label for a single image.</span> <span class="n">image_url</span> <span class="o">=</span> <span class="s2">"https://upload.wikimedia.org/wikipedia/commons/a/aa/California_quail.jpg"</span> <span class="n">image_path</span> <span class="o">=</span> <span class="n">keras</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">get_file</span><span class="p">(</span><span class="n">origin</span><span class="o">=</span><span class="n">image_url</span><span class="p">)</span> <span class="n">image</span> <span class="o">=</span> <span class="n">keras</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">load_img</span><span class="p">(</span><span class="n">image_path</span><span class="p">)</span> <span class="n">batch</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="n">image</span><span class="p">])</span> <span class="n">preds</span> <span class="o">=</span> <span class="n">classifier</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span><span class="n">batch</span><span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">keras_hub</span><span class="o">.</span><span class="n">utils</span><span class="o">.</span><span class="n">decode_imagenet_predictions</span><span class="p">(</span><span class="n">preds</span><span class="p">))</span> <span class="c1"># Load a BERT model.</span> <span class="n">classifier</span> <span class="o">=</span> <span class="n">keras_hub</span><span class="o">.</span><span class="n">models</span><span class="o">.</span><span class="n">BertClassifier</span><span class="o">.</span><span class="n">from_preset</span><span class="p">(</span> <span class="s2">"bert_base_en_uncased"</span><span class="p">,</span> <span class="n">activation</span><span class="o">=</span><span class="s2">"softmax"</span><span class="p">,</span> <span class="n">num_classes</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="p">)</span> <span class="c1"># Fine-tune on IMDb movie reviews.</span> <span class="n">imdb_train</span><span class="p">,</span> <span class="n">imdb_test</span> <span class="o">=</span> <span class="n">tfds</span><span class="o">.</span><span class="n">load</span><span class="p">(</span> <span class="s2">"imdb_reviews"</span><span class="p">,</span> <span class="n">split</span><span class="o">=</span><span class="p">[</span><span class="s2">"train"</span><span class="p">,</span> <span class="s2">"test"</span><span class="p">],</span> <span class="n">as_supervised</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">batch_size</span><span class="o">=</span><span class="mi">16</span><span class="p">,</span> <span class="p">)</span> <span class="n">classifier</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">imdb_train</span><span class="p">,</span> <span class="n">validation_data</span><span class="o">=</span><span class="n">imdb_test</span><span class="p">)</span> <span class="c1"># Predict two new examples.</span> <span class="n">preds</span> <span class="o">=</span> <span class="n">classifier</span><span class="o">.</span><span class="n">predict</span><span class="p">(</span> <span class="p">[</span><span class="s2">"What an amazing movie!"</span><span class="p">,</span> <span class="s2">"A total waste of my time."</span><span class="p">]</span> <span class="p">)</span> <span class="nb">print</span><span class="p">(</span><span class="n">preds</span><span class="p">)</span> </code></pre></div> <hr /> <h2 id="compatibility">Compatibility</h2> <p>We follow <a href="https://semver.org/">Semantic Versioning</a>, and plan to provide backwards compatibility guarantees both for code and saved models built with our components. While we continue with pre-release <code>0.y.z</code> development, we may break compatibility at any time and APIs should not be consider stable.</p> <h2 id="disclaimer">Disclaimer</h2> <p>KerasHub provides access to pre-trained models via the <code>keras_hub.models</code> API. These pre-trained models are provided on an "as is" basis, without warranties or conditions of any kind.</p> <h2 id="citing-kerashub">Citing KerasHub</h2> <p>If KerasHub helps your research, we appreciate your citations. Here is the BibTeX entry:</p> <div class="codehilite"><pre><span></span><code><span class="nc">@misc</span><span class="p">{</span><span class="nl">kerashub2024</span><span class="p">,</span> <span class="w"> </span><span class="na">title</span><span class="p">=</span><span class="s">{KerasHub}</span><span class="p">,</span> <span class="w"> </span><span class="na">author</span><span class="p">=</span><span class="s">{Watson, Matthew, and Chollet, Fran\c{c}ois and Sreepathihalli,</span> <span class="s"> Divyashree, and Saadat, Samaneh and Sampath, Ramesh, and Rasskin, Gabriel and</span> <span class="s"> and Zhu, Scott and Singh, Varun and Wood, Luke and Tan, Zhenyu and Stenbit,</span> <span class="s"> Ian and Qian, Chen, and Bischof, Jonathan and others}</span><span class="p">,</span> <span class="w"> </span><span class="na">year</span><span class="p">=</span><span class="s">{2024}</span><span class="p">,</span> <span class="w"> </span><span class="na">howpublished</span><span class="p">=</span><span class="s">{\url{https://github.com/keras-team/keras-hub}}</span><span class="p">,</span> <span class="p">}</span> </code></pre></div> </div> <div class='k-outline'> <div class='k-outline-depth-1'> <a href='#kerashub'>KerasHub</a> </div> <div class='k-outline-depth-2'> ◆ <a href='#quick-links'>Quick links</a> </div> <div class='k-outline-depth-2'> ◆ <a href='#guides'>Guides</a> </div> <div class='k-outline-depth-2'> ◆ <a href='#installation'>Installation</a> </div> <div class='k-outline-depth-2'> ◆ <a href='#quickstart'>Quickstart</a> </div> <div class='k-outline-depth-2'> ◆ <a href='#compatibility'>Compatibility</a> </div> <div class='k-outline-depth-2'> ◆ <a href='#disclaimer'>Disclaimer</a> </div> <div class='k-outline-depth-2'> ◆ <a href='#citing-kerashub'>Citing KerasHub</a> </div> </div> </div> </div> </div> </body> <footer style="float: left; width: 100%; padding: 1em; border-top: solid 1px #bbb;"> <a href="https://policies.google.com/terms">Terms</a> | <a href="https://policies.google.com/privacy">Privacy</a> </footer> </html>