CINXE.COM

Post-training quantization  |  Google AI Edge  |  Google AI for Developers

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google AI for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#1967d2"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/googledevai/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/touchicon-180-new.png"><link rel="canonical" href="https://ai.google.dev/edge/litert/models/post_training_quantization"><link rel="search" type="application/opensearchdescription+xml" title="Google AI for Developers" href="https://ai.google.dev/s/opensearch.xml"> <link rel="alternate" hreflang="en" href="https://ai.google.dev/edge/litert/models/post_training_quantization" /><link rel="alternate" hreflang="x-default" href="https://ai.google.dev/edge/litert/models/post_training_quantization" /><link rel="alternate" hreflang="ar" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=ar" /><link rel="alternate" hreflang="bn" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=bn" /><link rel="alternate" hreflang="zh-Hans" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=zh-cn" /><link rel="alternate" hreflang="zh-Hant" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=zh-tw" /><link rel="alternate" hreflang="fa" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=fa" /><link rel="alternate" hreflang="fr" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=fr" /><link rel="alternate" hreflang="de" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=de" /><link rel="alternate" hreflang="he" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=he" /><link rel="alternate" hreflang="hi" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=hi" /><link rel="alternate" hreflang="id" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=id" /><link rel="alternate" hreflang="it" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=it" /><link rel="alternate" hreflang="ja" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=ja" /><link rel="alternate" hreflang="ko" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=ko" /><link rel="alternate" hreflang="pl" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=pl" /><link rel="alternate" hreflang="pt-BR" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=pt-br" /><link rel="alternate" hreflang="ru" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=ru" /><link rel="alternate" hreflang="es-419" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=es-419" /><link rel="alternate" hreflang="th" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=th" /><link rel="alternate" hreflang="tr" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=tr" /><link rel="alternate" hreflang="vi" href="https://ai.google.dev/edge/litert/models/post_training_quantization?hl=vi" /><title>Post-training quantization &nbsp;|&nbsp; Google AI Edge &nbsp;|&nbsp; Google AI for Developers</title> <meta property="og:title" content="Post-training quantization &nbsp;|&nbsp; Google AI Edge &nbsp;|&nbsp; Google AI for Developers"><meta property="og:url" content="https://ai.google.dev/edge/litert/models/post_training_quantization"><meta property="og:image" content="https://ai.google.dev/static/site-assets/images/share.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Post-training quantization" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "Google AI Edge", "item": "https://ai.google.dev/edge" },{ "@type": "ListItem", "position": 2, "name": "Post-training quantization", "item": "https://ai.google.dev/edge/litert/models/post_training_quantization" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="googledevai-theme" type="article" layout="docs" display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner" keep-tabs-visible> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleAIEdge" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://ai.google.dev/_static/googledevai/images/lockup-new.svg" class="devsite-site-logo" alt="Google AI Edge"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab > <a href="https://ai.google.dev/gemini-api" track-metadata-eventdetail="https://ai.google.dev/gemini-api" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - gemini api" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Gemini API" track-name="gemini api" > Gemini API </a> </tab> <tab > <a href="https://ai.google.dev/gemma" track-metadata-eventdetail="https://ai.google.dev/gemma" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - gemma" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Gemma" track-name="gemma" > Gemma </a> </tab> <tab class="devsite-active"> <a href="https://ai.google.dev/edge" track-metadata-eventdetail="https://ai.google.dev/edge" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - google ai edge" track-metadata-module="primary nav" aria-label="Google AI Edge, selected" data-category="Site-Wide Custom Events" data-label="Tab: Google AI Edge" track-name="google ai edge" > Google AI Edge </a> </tab> <tab class="devsite-dropdown "> <span class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - tools" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Tools" track-name="tools" > Tools </span> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Tools" track-type="nav" track-metadata-eventdetail="" track-metadata-position="nav - tools" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Tools" track-name="tools" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://ai.google.dev/responsible" track-type="nav" track-metadata-eventdetail="https://ai.google.dev/responsible" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Responsible GenAI Toolkit </div> </a> </li> <li class="devsite-nav-item"> <a href="https://colab.google/" track-type="nav" track-metadata-eventdetail="https://colab.google/" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Colab </div> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/genkit" track-type="nav" track-metadata-eventdetail="https://firebase.google.com/docs/genkit" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Firebase Genkit </div> </a> </li> <li class="devsite-nav-item"> <a href="https://jax.readthedocs.io/" track-type="nav" track-metadata-eventdetail="https://jax.readthedocs.io/" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> JAX </div> </a> </li> <li class="devsite-nav-item"> <a href="https://keras.io/" track-type="nav" track-metadata-eventdetail="https://keras.io/" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> Keras </div> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/" track-type="nav" track-metadata-eventdetail="https://www.tensorflow.org/" track-metadata-position="nav - tools" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> TensorFlow </div> </a> </li> </ul> </div> </div> </div> </tab> <tab > <a href="https://discuss.ai.google.dev/" track-metadata-eventdetail="https://discuss.ai.google.dev/" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - community" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" > Community </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="Google AI Edge" tenant-name="Google AI for Developers" > <form class="devsite-search-form" action="https://ai.google.dev/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://ai.google.dev/edge" track-metadata-eventdetail="https://ai.google.dev/edge" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - overview" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" > Overview </a> </tab> <tab class="devsite-dropdown "> <span class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - mediapipe" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: MediaPipe" track-name="mediapipe" > MediaPipe </span> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for MediaPipe" track-type="nav" track-metadata-eventdetail="" track-metadata-position="nav - mediapipe" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: MediaPipe" track-name="mediapipe" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></a> <div class="devsite-tabs-dropdown" aria-label="submenu" hidden> <div class="devsite-tabs-dropdown-content"> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://ai.google.dev/edge/mediapipe/solutions/guide" track-type="nav" track-metadata-eventdetail="https://ai.google.dev/edge/mediapipe/solutions/guide" track-metadata-position="nav - mediapipe" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> MediaPipe Solutions </div> </a> </li> <li class="devsite-nav-item"> <a href="https://ai.google.dev/edge/mediapipe/framework" track-type="nav" track-metadata-eventdetail="https://ai.google.dev/edge/mediapipe/framework" track-metadata-position="nav - mediapipe" track-metadata-module="tertiary nav" tooltip > <div class="devsite-nav-item-title"> MediaPipe Framework </div> </a> </li> </ul> </div> </div> </div> </tab> <tab class="devsite-active"> <a href="https://ai.google.dev/edge/litert" track-metadata-eventdetail="https://ai.google.dev/edge/litert" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - litert" track-metadata-module="primary nav" aria-label="LiteRT, selected" data-category="Site-Wide Custom Events" data-label="Tab: LiteRT" track-name="litert" > LiteRT </a> </tab> <tab > <a href="https://ai.google.dev/edge/mediapipe/solutions/guide" track-metadata-eventdetail="https://ai.google.dev/edge/mediapipe/solutions/guide" class="devsite-tabs-content gc-analytics-event gemini-hidden-tab" track-type="nav" track-metadata-position="nav - solutions" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Solutions" track-name="solutions" > Solutions </a> </tab> <tab > <a href="https://ai.google.dev/edge/mediapipe/framework" track-metadata-eventdetail="https://ai.google.dev/edge/mediapipe/framework" class="devsite-tabs-content gc-analytics-event gemini-hidden-tab" track-type="nav" track-metadata-position="nav - framework" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Framework" track-name="framework" > Framework </a> </tab> <tab > <a href="https://ai.google.dev/edge/model-explorer" track-metadata-eventdetail="https://ai.google.dev/edge/model-explorer" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - model explorer" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Model Explorer" track-name="model explorer" > Model Explorer </a> </tab> <tab > <a href="https://ai.google.dev/edge/api" track-metadata-eventdetail="https://ai.google.dev/edge/api" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - api reference" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: API Reference" track-name="api reference" > API Reference </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleAIEdge" track-metadata-position="nav" track-metadata-eventDetail="nav"> <picture> <img src="https://ai.google.dev/_static/googledevai/images/lockup-new.svg" class="devsite-site-logo" alt="Google AI Edge"> </picture> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/gemini-api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Gemini API" track-name="gemini api" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Gemini API" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Gemini API </span> </a> </li> <li class="devsite-nav-item"> <a href="/gemma" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Gemma" track-name="gemma" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Gemma" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Gemma </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Google AI Edge" track-name="google ai edge" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Google AI Edge" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Google AI Edge </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/edge" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Overview" track-name="overview" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Overview </span> </a> </li> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: MediaPipe" track-name="mediapipe" > <span class="devsite-nav-text" tooltip > MediaPipe </span> </span> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu devsite-lower-tab-item"> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: MediaPipe" track-name="mediapipe" > <span class="devsite-nav-text" tooltip menu="MediaPipe"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="MediaPipe"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/edge/litert" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: LiteRT" track-name="litert" data-category="Site-Wide Custom Events" data-label="Responsive Tab: LiteRT" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> LiteRT </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge/mediapipe/solutions/guide" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Solutions" track-name="solutions" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Solutions" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Solutions </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge/mediapipe/framework" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Framework" track-name="framework" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Framework" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Framework </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge/model-explorer" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Model Explorer" track-name="model explorer" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Model Explorer" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Model Explorer </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge/api" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: API Reference" track-name="api reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: API Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > API Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Tools" track-name="tools" > <span class="devsite-nav-text" tooltip > Tools </span> </span> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip data-category="Site-Wide Custom Events" data-label="Tab: Tools" track-name="tools" > <span class="devsite-nav-text" tooltip menu="Tools"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Tools"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="https://discuss.ai.google.dev/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Community" track-name="community" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Community </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item"><a href="/edge/litert" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/inference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/inference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/inference" ><span class="devsite-nav-text" tooltip>Get started</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/migration" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/migration" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/migration" ><span class="devsite-nav-text" tooltip>Migrating from TensorFlow Lite</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Models</span> </div></li> <li class="devsite-nav-item"><a href="/edge/litert/models/convert_to_flatbuffer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/convert_to_flatbuffer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/convert_to_flatbuffer" ><span class="devsite-nav-text" tooltip>Support multiple frameworks</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/models/trained" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/trained" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/trained" ><span class="devsite-nav-text" tooltip>Use trained models</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Convert TensorFlow models</span> </div></li> <li class="devsite-nav-item"><a href="/edge/litert/models/convert" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/convert" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/convert" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/models/convert_tf" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/convert_tf" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/convert_tf" ><span class="devsite-nav-text" tooltip>Convert TensorFlow models</span></a></li> <li class="devsite-nav-item devsite-nav-experimental"><a href="/edge/litert/models/signatures" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/signatures" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/signatures" ><span class="devsite-nav-text" tooltip>Add Signatures</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Conversion tools</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-experimental"><a href="/edge/litert/models/model_analyzer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/model_analyzer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/model_analyzer" ><span class="devsite-nav-text" tooltip>Model Analyzer</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li><li class="devsite-nav-item devsite-nav-experimental"><a href="/edge/litert/models/authoring" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/authoring" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/authoring" ><span class="devsite-nav-text" tooltip>Authoring tool</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Model compatibility</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/litert/models/ops_compatibility" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/ops_compatibility" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/ops_compatibility" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/ops_select" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/ops_select" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/ops_select" ><span class="devsite-nav-text" tooltip>Select operators</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/op_select_allowlist" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/op_select_allowlist" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/op_select_allowlist" ><span class="devsite-nav-text" tooltip>Select operators Allowlist</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Advanced</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/litert/models/ops_custom" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/ops_custom" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/ops_custom" ><span class="devsite-nav-text" tooltip>Custom operators</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/operation_fusion" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/operation_fusion" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/operation_fusion" ><span class="devsite-nav-text" tooltip>Fused operators</span></a></li><li class="devsite-nav-item devsite-nav-experimental"><a href="/edge/litert/models/ops_version" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/ops_version" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/ops_version" ><span class="devsite-nav-text" tooltip>Operator versions</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/rnn" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/rnn" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/rnn" ><span class="devsite-nav-text" tooltip>RNN models</span></a></li></ul></div></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Optimize models</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/litert/models/model_optimization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/model_optimization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/model_optimization" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/post_training_quantization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/post_training_quantization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/post_training_quantization" ><span class="devsite-nav-text" tooltip>Post-training quantization</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/post_training_quant" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/post_training_quant" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/post_training_quant" ><span class="devsite-nav-text" tooltip>Post-training dynamic range quantization</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/post_training_integer_quant" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/post_training_integer_quant" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/post_training_integer_quant" ><span class="devsite-nav-text" tooltip>Post-training integer quantization</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/post_training_float16_quant" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/post_training_float16_quant" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/post_training_float16_quant" ><span class="devsite-nav-text" tooltip>Post-training float16 quantization</span></a></li><li class="devsite-nav-item devsite-nav-experimental"><a href="/edge/litert/models/post_training_integer_quant_16x8" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/post_training_integer_quant_16x8" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/post_training_integer_quant_16x8" ><span class="devsite-nav-text" tooltip>Post-training integer quantization with int16 activations</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/quantization_spec" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/quantization_spec" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/quantization_spec" ><span class="devsite-nav-text" tooltip>Quantization specification</span></a></li><li class="devsite-nav-item devsite-nav-nightly"><a href="/edge/litert/models/quantization_debugger" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/quantization_debugger" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/quantization_debugger" ><span class="devsite-nav-text" tooltip>Inspecting quantization errors</span><span class="devsite-nav-icon material-icons" data-icon="nightly" data-title="Nightly build only" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Add model metadata</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/litert/models/metadata" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/metadata" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/metadata" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/metadata_writer_tutorial" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/metadata_writer_tutorial" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/metadata_writer_tutorial" ><span class="devsite-nav-text" tooltip>Metadata Writer API</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Design and build models</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/litert/models/build" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/build" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/build" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/best_practices" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/best_practices" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/best_practices" ><span class="devsite-nav-text" tooltip>Performance best practices</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/measurement" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/measurement" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/measurement" ><span class="devsite-nav-text" tooltip>Performance measurement</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/models/ondevice_training" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/ondevice_training" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/ondevice_training" ><span class="devsite-nav-text" tooltip>On-device training</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Convert PyTorch models</span> </div></li> <li class="devsite-nav-item"><a href="/edge/litert/models/convert_pytorch" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/convert_pytorch" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/convert_pytorch" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/models/pytorch_to_tflite" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/pytorch_to_tflite" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/pytorch_to_tflite" ><span class="devsite-nav-text" tooltip>PyTorch to LiteRT quickstart</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/models/edge_generative" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/edge_generative" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/edge_generative" ><span class="devsite-nav-text" tooltip>Convert generative PyTorch models</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Convert JAX models</span> </div></li> <li class="devsite-nav-item devsite-nav-nightly"><a href="/edge/litert/models/convert_jax" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/convert_jax" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/convert_jax" ><span class="devsite-nav-text" tooltip>Overview</span><span class="devsite-nav-icon material-icons" data-icon="nightly" data-title="Nightly build only" aria-hidden="true"></span></a></li> <li class="devsite-nav-item devsite-nav-nightly"><a href="/edge/litert/models/jax_to_tflite" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/models/jax_to_tflite" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/models/jax_to_tflite" ><span class="devsite-nav-text" tooltip>JAX to LiteRT quickstart</span><span class="devsite-nav-icon material-icons" data-icon="nightly" data-title="Nightly build only" aria-hidden="true"></span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Hardware acceleration</span> </div></li> <li class="devsite-nav-item"><a href="/edge/litert/performance/delegates" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/performance/delegates" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/performance/delegates" ><span class="devsite-nav-text" tooltip>Delegates</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/performance/gpu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/performance/gpu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/performance/gpu" ><span class="devsite-nav-text" tooltip>GPU delegates</span></a></li> <li class="devsite-nav-item devsite-nav-experimental"><a href="/edge/litert/performance/implementing_delegate" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/performance/implementing_delegate" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/performance/implementing_delegate" ><span class="devsite-nav-text" tooltip>Implementing a delegate</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Run on Android</span> </div></li> <li class="devsite-nav-item"><a href="/edge/litert/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Google Play services runtime</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/litert/android/play_services" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android/play_services" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android/play_services" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/android/java" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android/java" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android/java" ><span class="devsite-nav-text" tooltip>Java API</span></a></li><li class="devsite-nav-item devsite-nav-experimental"><a href="/edge/litert/android/native" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android/native" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android/native" ><span class="devsite-nav-text" tooltip>C API</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li></ul></div></li> <li class="devsite-nav-item"><a href="/edge/litert/android/development" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android/development" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android/development" ><span class="devsite-nav-text" tooltip>Development tools</span></a></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Hardware acceleration</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item devsite-nav-experimental"><a href="/edge/litert/android/acceleration_service" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android/acceleration_service" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android/acceleration_service" ><span class="devsite-nav-text" tooltip>Acceleration service</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li><li class="devsite-nav-item"><a href="/edge/litert/android/gpu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android/gpu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android/gpu" ><span class="devsite-nav-text" tooltip>GPU with Interpreter API</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/android/gpu_native" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android/gpu_native" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android/gpu_native" ><span class="devsite-nav-text" tooltip>GPU with C/C++ API</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/android/npu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android/npu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android/npu" ><span class="devsite-nav-text" tooltip>NPU delegates</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Models with metadata</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/litert/android/metadata/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android/metadata/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android/metadata/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/android/metadata/codegen" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android/metadata/codegen" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android/metadata/codegen" ><span class="devsite-nav-text" tooltip>Generate model interfaces</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/android/metadata/lite_support" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/android/metadata/lite_support" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/android/metadata/lite_support" ><span class="devsite-nav-text" tooltip>Customize data input and output</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Run on iOS</span> </div></li> <li class="devsite-nav-item"><a href="/edge/litert/ios/quickstart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/ios/quickstart" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/ios/quickstart" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/ios/coreml" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/ios/coreml" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/ios/coreml" ><span class="devsite-nav-text" tooltip>Core ML delegate</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/ios/gpu" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/ios/gpu" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/ios/gpu" ><span class="devsite-nav-text" tooltip>GPU delegate</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Run on Micro</span> </div></li> <li class="devsite-nav-item"><a href="/edge/litert/microcontrollers/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/microcontrollers/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/microcontrollers/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/microcontrollers/get_started" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/microcontrollers/get_started" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/microcontrollers/get_started" ><span class="devsite-nav-text" tooltip>Get started</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/microcontrollers/python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/microcontrollers/python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/microcontrollers/python" ><span class="devsite-nav-text" tooltip>Linux-based devices with Python</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/microcontrollers/library" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/microcontrollers/library" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/microcontrollers/library" ><span class="devsite-nav-text" tooltip>Understand the C++ library</span></a></li> <li class="devsite-nav-item"><a href="/edge/litert/microcontrollers/build_convert" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/microcontrollers/build_convert" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/microcontrollers/build_convert" ><span class="devsite-nav-text" tooltip>Build and convert models</span></a></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Libraries and tools</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Task Library</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/overview" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/overview" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/overview" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/image_classifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/image_classifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/image_classifier" ><span class="devsite-nav-text" tooltip>ImageClassifier</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/object_detector" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/object_detector" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/object_detector" ><span class="devsite-nav-text" tooltip>ObjectDetector</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/image_segmenter" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/image_segmenter" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/image_segmenter" ><span class="devsite-nav-text" tooltip>ImageSegmenter</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/image_embedder" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/image_embedder" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/image_embedder" ><span class="devsite-nav-text" tooltip>ImageEmbedder</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/image_searcher" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/image_searcher" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/image_searcher" ><span class="devsite-nav-text" tooltip>ImageSearcher</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/nl_classifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/nl_classifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/nl_classifier" ><span class="devsite-nav-text" tooltip>NLClassifier</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/bert_nl_classifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/bert_nl_classifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/bert_nl_classifier" ><span class="devsite-nav-text" tooltip>BertNLClassifier</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/bert_question_answerer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/bert_question_answerer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/bert_question_answerer" ><span class="devsite-nav-text" tooltip>BertQuestionAnswerer</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/text_embedder" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/text_embedder" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/text_embedder" ><span class="devsite-nav-text" tooltip>TextEmbedder</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/text_searcher" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/text_searcher" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/text_searcher" ><span class="devsite-nav-text" tooltip>TextSearcher</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/audio_classifier" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/audio_classifier" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/audio_classifier" ><span class="devsite-nav-text" tooltip>AudioClassifier</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/task_library/customized_task_api" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/task_library/customized_task_api" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/task_library/customized_task_api" ><span class="devsite-nav-text" tooltip>Customized API</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-expandable devsite-nav-experimental"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Model Maker</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/litert/libraries/modify" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/modify" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/modify" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Images &amp; video</span> </div></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/modify/image_classification" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/modify/image_classification" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/modify/image_classification" ><span class="devsite-nav-text" tooltip>Image classification</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/modify/object_detection" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/modify/object_detection" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/modify/object_detection" ><span class="devsite-nav-text" tooltip>Object detection</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Text</span> </div></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/modify/text_classification" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/modify/text_classification" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/modify/text_classification" ><span class="devsite-nav-text" tooltip>Text classification</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/modify/question_answer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/modify/question_answer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/modify/question_answer" ><span class="devsite-nav-text" tooltip>BERT question &amp; answer</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/modify/text_searcher" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/modify/text_searcher" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/modify/text_searcher" ><span class="devsite-nav-text" tooltip>Text search</span></a></li><li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Audio</span> </div></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/modify/audio_classification" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/modify/audio_classification" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/modify/audio_classification" ><span class="devsite-nav-text" tooltip>Audio classification</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/libraries/modify/speech_recognition" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/libraries/modify/speech_recognition" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/libraries/modify/speech_recognition" ><span class="devsite-nav-text" tooltip>Speech recognition</span></a></li></ul></div></li> <li class="devsite-nav-item devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path"> <span class="devsite-nav-text" tooltip>Advanced</span> </div></li> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Build LiteRT</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/litert/build/android" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/build/android" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/build/android" ><span class="devsite-nav-text" tooltip>Build for Android</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/build/ios" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/build/ios" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/build/ios" ><span class="devsite-nav-text" tooltip>Build for iOS</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/build/arm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/build/arm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/build/arm" ><span class="devsite-nav-text" tooltip>Build for ARM</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Build with CMake</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/edge/litert/build/cmake" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/build/cmake" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/build/cmake" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/edge/litert/build/cmake_arm" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/build/cmake_arm" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/build/cmake_arm" ><span class="devsite-nav-text" tooltip>Cross compilation for ARM</span></a></li></ul></div></li><li class="devsite-nav-item"><a href="/edge/litert/build/cmake_pip" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/build/cmake_pip" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/build/cmake_pip" ><span class="devsite-nav-text" tooltip>Build Python Wheel</span></a></li><li class="devsite-nav-item devsite-nav-experimental"><a href="/edge/litert/build/reduce_binary_size" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /edge/litert/build/reduce_binary_size" track-type="bookNav" track-name="click" track-metadata-eventdetail="/edge/litert/build/reduce_binary_size" ><span class="devsite-nav-text" tooltip>Reduce binary size</span><span class="devsite-nav-icon material-icons" data-icon="experimental" data-title="Experimental!" aria-hidden="true"></span></a></li></ul></div></li> </ul> <ul class="devsite-nav-list" menu="Tools" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/responsible" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Responsible GenAI Toolkit" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Responsible GenAI Toolkit </span> </a> </li> <li class="devsite-nav-item"> <a href="https://colab.google/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Colab" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Colab </span> </a> </li> <li class="devsite-nav-item"> <a href="https://firebase.google.com/docs/genkit" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Firebase Genkit" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Firebase Genkit </span> </a> </li> <li class="devsite-nav-item"> <a href="https://jax.readthedocs.io/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: JAX" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > JAX </span> </a> </li> <li class="devsite-nav-item"> <a href="https://keras.io/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Keras" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Keras </span> </a> </li> <li class="devsite-nav-item"> <a href="https://www.tensorflow.org/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > TensorFlow </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="MediaPipe" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/edge/mediapipe/solutions/guide" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: MediaPipe Solutions" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > MediaPipe Solutions </span> </a> </li> <li class="devsite-nav-item"> <a href="/edge/mediapipe/framework" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: MediaPipe Framework" track-type="navMenu" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > MediaPipe Framework </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav has-sidebar > <div class="devsite-sidebar"> <div class="devsite-sidebar-content"> <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars ></devsite-toc> <devsite-recommendations-sidebar class="nocontent devsite-nav"> </devsite-recommendations-sidebar> </div> </div> <devsite-content> <article class="devsite-article"> <div class="devsite-banner devsite-banner-announcement nocontent" background="google-blue" > <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> <b>Introducing LiteRT</b>: Google's high-performance runtime for on-device AI, formerly known as TensorFlow Lite. <a class="button button-primary" href="https://developers.googleblog.com/en/tensorflow-lite-is-now-litert">Learn more</a> </div> </div> </div> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://ai.google.dev/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://ai.google.dev/edge" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Google AI Edge" > Google AI Edge </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://ai.google.dev/edge/litert" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="" > LiteRT </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="Google AI Edge" product-id="5336252" bucket="documentation" context="" version="t-devsite-webserver-20241114-r00-rc02.464921008191574316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/touchicon-180-new.png" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Post-training quantization </h1> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <p>Post-training quantization is a conversion technique that can reduce model size while also improving CPU and hardware accelerator latency, with little degradation in model accuracy. You can quantize an already-trained float TensorFlow model when you convert it to LiteRT format using the <a href="https://ai.google.dev/edge/litert/models/convert/">LiteRT Converter</a>.</p> <aside class="note"><strong>Note:</strong><span> The procedures on this page require TensorFlow 1.15 or higher.</span></aside> <h3 id="optimization_methods" data-text="Optimization Methods" tabindex="-1">Optimization Methods</h3> <p>There are several post-training quantization options to choose from. Here is a summary table of the choices and the benefits they provide:</p> <table> <thead> <tr> <th>Technique</th> <th>Benefits</th> <th>Hardware</th> </tr> </thead> <tbody> <tr> <td>Dynamic range quantization</td> <td>4x smaller, 2x-3x speedup </td> <td>CPU </td> </tr> <tr> <td>Full integer quantization</td> <td>4x smaller, 3x+ speedup </td> <td>CPU, Edge TPU, Microcontrollers</td> </tr> <tr> <td>Float16 quantization </td> <td>2x smaller, GPU acceleration</td> <td>CPU, GPU </td> </tr> </tbody> </table> <p>The following decision tree can help determine which post-training quantization method is best for your use case:</p> <p><img src="https://ai.google.dev/edge/litert/images/models/optimization.jpg" alt="post-training optimization options"></p> <h3 id="no_quantization" data-text="No Quantization" tabindex="-1">No Quantization</h3> <p>Converting to a TFLite model without quantization is a recommended starting point. This will generate a float TFLite model.</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) tflite_quant_model = converter.convert() </pre></devsite-code> <p>We recommend that you do this as an initial step to verify that the original TF model&#39;s operators are compatible with TFLite and can also be used as a baseline to debug quantization errors introduced by subsequent post-training quantization methods. For example, if a quantized TFLite model produces unexpected results, while the float TFLite model is accurate, we can narrow down the issue to errors introduced by the quantized version of the TFLite operators.</p> <h3 id="dynamic_range_quantization" data-text="Dynamic range quantization" tabindex="-1">Dynamic range quantization</h3> <p>Dynamic range quantization provides reduced memory usage and faster computation without you having to provide a representative dataset for calibration. This type of quantization, statically quantizes only the weights from floating point to integer at conversion time, which provides 8-bits of precision:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) <b>converter.optimizations = [tf.lite.Optimize.DEFAULT]</b> tflite_quant_model = converter.convert() </pre></devsite-code> <p>To further reduce latency during inference, &quot;dynamic-range&quot; operators dynamically quantize activations based on their range to 8-bits and perform computations with 8-bit weights and activations. This optimization provides latencies close to fully fixed-point inferences. However, the outputs are still stored using floating point so the increased speed of dynamic-range ops is less than a full fixed-point computation.</p> <h3 id="full_integer_quantization" data-text="Full integer quantization" tabindex="-1">Full integer quantization</h3> <p>You can get further latency improvements, reductions in peak memory usage, and compatibility with integer only hardware devices or accelerators by making sure all model math is integer quantized.</p> <p>For full integer quantization, you need to calibrate or estimate the range, i.e., (min, max) of all floating-point tensors in the model. Unlike constant tensors such as weights and biases, variable tensors such as model input, activations (outputs of intermediate layers) and model output cannot be calibrated unless we run a few inference cycles. As a result, the converter requires a representative dataset to calibrate them. This dataset can be a small subset (around ~100-500 samples) of the training or validation data. Refer to the <code translate="no" dir="ltr">representative_dataset()</code> function below.</p> <p>From TensorFlow 2.7 version, you can specify the representative dataset through a <a href="https://ai.google.dev/edge/litert/models/signatures.ipynb">signature</a> as the following example:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> def representative_dataset(): for data in dataset: yield { "image": data.image, "bias": data.bias, } </pre></devsite-code> <p>If there are more than one signature in the given TensorFlow model, you can specify the multiple dataset by specifying the signature keys:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> def representative_dataset(): # Feed data set for the "encode" signature. for data in encode_signature_dataset: yield ( "encode", { "image": data.image, "bias": data.bias, } ) # Feed data set for the "decode" signature. for data in decode_signature_dataset: yield ( "decode", { "image": data.image, "hint": data.hint, }, ) </pre></devsite-code> <p>You can generate the representative dataset by providing an input tensor list:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> def representative_dataset(): for data in tf.data.Dataset.from_tensor_slices((images)).batch(1).take(100): yield [tf.dtypes.cast(data, tf.float32)] </pre></devsite-code> <p>Since TensorFlow 2.7 version, we recommend using the signature-based approach over the input tensor list-based approach because the input tensor ordering can be easily flipped.</p> <p>For testing purposes, you can use a dummy dataset as follows:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> def representative_dataset(): for _ in range(100): data = np.random.rand(1, 244, 244, 3) yield [data.astype(np.float32)] </pre></devsite-code> <h4 id="integer_with_float_fallback_using_default_float_inputoutput" data-text="Integer with float fallback (using default float input/output)" tabindex="-1">Integer with float fallback (using default float input/output)</h4> <p>In order to fully integer quantize a model, but use float operators when they don&#39;t have an integer implementation (to ensure conversion occurs smoothly), use the following steps:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) <b>converter.optimizations = [tf.lite.Optimize.DEFAULT] converter.representative_dataset = representative_dataset</b> tflite_quant_model = converter.convert() </pre></devsite-code> <aside class="note"><strong>Note:</strong><span> This <code translate="no" dir="ltr">tflite_quant_model</code> won&#39;t be compatible with integer only devices (such as 8-bit microcontrollers) and accelerators (such as the Coral Edge TPU) because the input and output still remain float in order to have the same interface as the original float only model.</span></aside> <h4 id="integer_only" data-text="Integer only" tabindex="-1">Integer only</h4> <p><em>Creating integer only models is a common use case for <a href="https://www.tensorflow.org/lite/microcontrollers">LiteRT for Microcontrollers</a> and <a href="https://coral.ai/">Coral Edge TPUs</a>.</em></p> <aside class="note"><strong>Note:</strong><span> Starting TensorFlow 2.3.0, we support the <code translate="no" dir="ltr">inference_input_type</code> and <code translate="no" dir="ltr">inference_output_type</code> attributes.</span></aside> <p>Additionally, to ensure compatibility with integer only devices (such as 8-bit microcontrollers) and accelerators (such as the Coral Edge TPU), you can enforce full integer quantization for all ops including the input and output, by using the following steps:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) converter.optimizations = [tf.lite.Optimize.DEFAULT] converter.representative_dataset = representative_dataset <b>converter.target_spec.supported_ops = [tf.lite.OpsSet.TFLITE_BUILTINS_INT8]</b> <b>converter.inference_input_type = tf.int8</b> # or tf.uint8 <b>converter.inference_output_type = tf.int8</b> # or tf.uint8 tflite_quant_model = converter.convert() </pre></devsite-code> <h3 id="float16_quantization" data-text="Float16 quantization" tabindex="-1">Float16 quantization</h3> <p>You can reduce the size of a floating point model by quantizing the weights to float16, the IEEE standard for 16-bit floating point numbers. To enable float16 quantization of weights, use the following steps:</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) <b>converter.optimizations = [tf.lite.Optimize.DEFAULT] converter.target_spec.supported_types = [tf.float16]</b> tflite_quant_model = converter.convert() </pre></devsite-code> <p>The advantages of float16 quantization are as follows:</p> <ul> <li>It reduces model size by up to half (since all weights become half of their original size).</li> <li>It causes minimal loss in accuracy.</li> <li>It supports some delegates (e.g. the GPU delegate) which can operate directly on float16 data, resulting in faster execution than float32 computations.</li> </ul> <p>The disadvantages of float16 quantization are as follows:</p> <ul> <li>It does not reduce latency as much as a quantization to fixed point math.</li> <li>By default, a float16 quantized model will &quot;dequantize&quot; the weights values to float32 when run on the CPU. (Note that the GPU delegate will not perform this dequantization, since it can operate on float16 data.)</li> </ul> <h3 id="integer_only_16-bit_activations_with_8-bit_weights_experimental" data-text="Integer only: 16-bit activations with 8-bit weights (experimental)" tabindex="-1">Integer only: 16-bit activations with 8-bit weights (experimental)</h3> <p>This is an experimental quantization scheme. It is similar to the &quot;integer only&quot; scheme, but activations are quantized based on their range to 16-bits, weights are quantized in 8-bit integer and bias is quantized into 64-bit integer. This is referred to as 16x8 quantization further.</p> <p>The main advantage of this quantization is that it can improve accuracy significantly, but only slightly increase model size.</p> <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) converter.representative_dataset = representative_dataset <b>converter.optimizations = [tf.lite.Optimize.DEFAULT] converter.target_spec.supported_ops = [tf.lite.OpsSet.EXPERIMENTAL_TFLITE_BUILTINS_ACTIVATIONS_INT16_WEIGHTS_INT8]</b> tflite_quant_model = converter.convert() </pre></devsite-code> <p>If 16x8 quantization is not supported for some operators in the model, then the model still can be quantized, but unsupported operators kept in float. The following option should be added to the target_spec to allow this. <div></div><devsite-code><pre translate="no" dir="ltr" is-upgraded> import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) converter.representative_dataset = representative_dataset converter.optimizations = [tf.lite.Optimize.DEFAULT] converter.target_spec.supported_ops = [tf.lite.OpsSet.EXPERIMENTAL_TFLITE_BUILTINS_ACTIVATIONS_INT16_WEIGHTS_INT8, <b>tf.lite.OpsSet.TFLITE_BUILTINS</b>] tflite_quant_model = converter.convert() </pre></devsite-code></p> <p>Examples of the use cases where accuracy improvements provided by this quantization scheme include:</p> <ul> <li>super-resolution,</li> <li>audio signal processing such as noise cancelling and beamforming,</li> <li>image de-noising,</li> <li>HDR reconstruction from a single image.</li> </ul> <p>The disadvantage of this quantization is:</p> <ul> <li>Currently inference is noticeably slower than 8-bit full integer due to the lack of optimized kernel implementation.</li> <li>Currently it is incompatible with the existing hardware accelerated TFLite delegates.</li> </ul> <aside class="note"><strong>Note:</strong><span> This is an experimental feature.</span></aside> <p>A tutorial for this quantization mode can be found <a href="/static/edge/litert/models/post_training_integer_quant_16x8.ipynb">here</a>.</p> <h3 id="model_accuracy" data-text="Model accuracy" tabindex="-1">Model accuracy</h3> <p>Since weights are quantized post training, there could be an accuracy loss, particularly for smaller networks. Pre-trained fully quantized models are provided for specific networks on <a href="https://www.kaggle.com/models?framework=tfLite&amp;query=quantized" class="external">Kaggle Models</a> . It is important to check the accuracy of the quantized model to verify that any degradation in accuracy is within acceptable limits. There are tools to evaluate <a href="https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/tools/evaluation/tasks" class="external">LiteRT model accuracy</a>.</p> <p>Alternatively, if the accuracy drop is too high, consider using <a href="https://www.tensorflow.org/model_optimization/guide/quantization/training">quantization aware training</a> . However, doing so requires modifications during model training to add fake quantization nodes, whereas the post-training quantization techniques on this page use an existing pre-trained model.</p> <h3 id="representation_for_quantized_tensors" data-text="Representation for quantized tensors" tabindex="-1">Representation for quantized tensors</h3> <p>8-bit quantization approximates floating point values using the following formula.</p> <p>\[real\_value = (int8\_value - zero\_point) \times scale\]</p> <p>The representation has two main parts:</p> <ul> <li><p>Per-axis (aka per-channel) or per-tensor weights represented by int8 two’s complement values in the range [-127, 127] with zero-point equal to 0.</p></li> <li><p>Per-tensor activations/inputs represented by int8 two’s complement values in the range [-128, 127], with a zero-point in range [-128, 127].</p></li> </ul> <p>For a detailed view of our quantization scheme, please see our <a href="https://ai.google.dev/edge/litert/models/quantization_spec">quantization spec</a>. Hardware vendors who want to plug into TensorFlow Lite&#39;s delegate interface are encouraged to implement the quantization scheme described there.</p> </div> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="Google AI Edge" product-id="5336252" bucket="documentation" context="" version="t-devsite-webserver-20241114-r00-rc02.464921008191574316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/touchicon-180-new.png" > <button> Send feedback </button> </devsite-feedback> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2024-08-30 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="Google AI Edge" product-id="5336252" bucket="documentation" context="" version="t-devsite-webserver-20241114-r00-rc02.464921008191574316" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-icon="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/touchicon-180-new.png" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-30 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es_419" >Español – América Latina</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="it" >Italiano</a> </li> <li role="presentation"> <a role="menuitem" lang="pl" >Polski</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="vi" >Tiếng Việt</a> </li> <li role="presentation"> <a role="menuitem" lang="tr" >Türkçe</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="he" >עברית</a> </li> <li role="presentation"> <a role="menuitem" lang="ar" >العربيّة</a> </li> <li role="presentation"> <a role="menuitem" lang="fa" >فارسی</a> </li> <li role="presentation"> <a role="menuitem" lang="hi" >हिंदी</a> </li> <li role="presentation"> <a role="menuitem" lang="bn" >বাংলা</a> </li> <li role="presentation"> <a role="menuitem" lang="th" >ภาษาไทย</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_tw" >中文 – 繁體</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [], &#34;ga4p&#34;: [], &#34;gtm&#34;: [{&#34;id&#34;: &#34;GTM-TC2MQKS8&#34;, &#34;purpose&#34;: 0}], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Google AI Edge&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;googledevai&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="SgIx6V6vO8dVS+F0CHFUMdP+0Ggr4z"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/js/app_loader.js', '[59,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai","https://googledevai-dot-devsite-v2-prod-3p.appspot.com",null,null,["/_pwa/googledevai/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/googledevai/images/favicon-new.png","/_static/googledevai/images/lockup-new.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyCNm9YxQumEXwGJgTDjxoxXK6m1F-9720Q","AIzaSyCc76DZePGtoyUjqKrLdsMGk_ry7sljLbY","ai.google.dev","AIzaSyB9bqgQ2t11WJsOX8qNsCQ6U-w91mmqF-I","AIzaSyAdYnStPdzjcJJtQ0mvIaeaMKj7_t6J_Fg",null,null,null,["Profiles__enable_completecodelab_endpoint","MiscFeatureFlags__enable_variable_operator","Profiles__enable_dashboard_curated_recommendations","Search__enable_page_map","EngEduTelemetry__enable_engedu_telemetry","Cloud__enable_llm_concierge_chat","CloudShell__cloud_shell_button","Search__enable_ai_eligibility_checks","Search__enable_dynamic_content_confidential_banner","Cloud__enable_free_trial_server_call","Profiles__enable_developer_profiles_callout","TpcFeatures__enable_required_headers","Profiles__enable_public_developer_profiles","Cloud__enable_cloudx_experiment_ids","Cloud__enable_cloud_shell","Cloud__enable_cloud_dlp_service","Profiles__enable_page_saving","MiscFeatureFlags__emergency_css","Cloud__enable_cloudx_ping","Search__enable_suggestions_from_borg","MiscFeatureFlags__enable_project_variables","Cloud__enable_cloud_shell_fte_user_flow","Experiments__reqs_query_experiments","Profiles__require_profile_eligibility_for_signin","Profiles__enable_complete_playlist_endpoint","Profiles__enable_recognition_badges","DevPro__enable_cloud_innovators_plus","OnSwitch__enable","Analytics__enable_clearcut_logging","CloudShell__cloud_code_overflow_menu","MiscFeatureFlags__enable_view_transitions","TpcFeatures__enable_mirror_tenant_redirects","Profiles__enable_awarding_url","Cloud__enable_legacy_calculator_redirect","DevPro__enable_developer_subscriptions","Cloud__enable_cloud_facet_chat","MiscFeatureFlags__enable_explain_this_code","Concierge__enable_pushui","MiscFeatureFlags__developers_footer_image","BookNav__enable_tenant_cache_key","Profiles__enable_release_notes_notifications","Profiles__enable_profile_collections","MiscFeatureFlags__developers_footer_dark_image","MiscFeatureFlags__enable_firebase_utm"],null,null,"AIzaSyA58TaKli1DculwmAmbpzLVGuWc8eCQgQc","https://developerscontentserving-pa.googleapis.com","AIzaSyDWBU60w0P9hEkr29kkksYs8Z7gvZ8u_wc","https://developerscontentsearch-pa.googleapis.com",2,4,null,"https://developerprofiles-pa.googleapis.com",[59,"googledevai","Google AI for Developers","ai.google.dev",null,"googledevai-dot-devsite-v2-prod-3p.appspot.com",null,null,[null,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],null,null,null,null,[1],[1,1,null,1,1]],null,[73,null,null,null,null,null,"/images/lockup-new.svg","/images/touchicon-180-new.png",null,null,null,null,1,1,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme-new.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],[1,1]],[[null,null,null,null,null,["GTM-TC2MQKS8"],null,null,null,null,null,[["GTM-TC2MQKS8",1]],1]],null,4]]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10