CINXE.COM

TensorFlow Extended (TFX) | ML Production Pipelines

<!doctype html> <html lang="en" dir="ltr"> <head><script type="text/javascript" src="/_static/js/bundle-playback.js?v=HxkREWBo" charset="utf-8"></script> <script type="text/javascript" src="/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://www.tensorflow.org/tfx","20210414163336","https://web.archive.org/","web","/_static/", "1618418016"); </script> <link rel="stylesheet" type="text/css" href="/_static/css/banner-styles.css?v=S1zqJCYt" /> <link rel="stylesheet" type="text/css" href="/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta name="google-signin-client-id" content="157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email"> <meta property="og:site_name" content="TensorFlow"> <meta property="og:type" content="website"> <meta name="theme-color" content="#ff6f00"> <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="/web/20210414163336/https://www.tensorflow.org/_pwa/tensorflow/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//web.archive.org/web/20210414163336/https://www.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210414163336/https://fonts.gstatic.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210414163336/https://fonts.googleapis.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210414163336/https://apis.google.com/" crossorigin> <link rel="preconnect" href="//web.archive.org/web/20210414163336/https://www.google-analytics.com/" crossorigin> <link rel="stylesheet" href="//web.archive.org/web/20210414163336cs_/https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700|Material+Icons"> <link rel="stylesheet" href="https://web.archive.org/web/20210414163336cs_/https://www.gstatic.com/devrel-devsite/prod/v611aa55c57477cd8cd7cf431e9c41501ac9b499722f27f5e58377ae7957507df/tensorflow/css/app.css"> <noscript> </noscript> <link rel="shortcut icon" href="https://web.archive.org/web/20210414163336im_/https://www.gstatic.com/devrel-devsite/prod/v611aa55c57477cd8cd7cf431e9c41501ac9b499722f27f5e58377ae7957507df/tensorflow/images/favicon.png"> <link rel="apple-touch-icon" href="https://web.archive.org/web/20210414163336im_/https://www.gstatic.com/devrel-devsite/prod/v611aa55c57477cd8cd7cf431e9c41501ac9b499722f27f5e58377ae7957507df/tensorflow/images/apple-touch-icon-180x180.png"><link rel="canonical" href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/tfx"><link rel="search" type="application/opensearchdescription+xml" title="TensorFlow" href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/s/opensearch.xml"> <title>TensorFlow Extended (TFX) | ML Production Pipelines</title> <meta property="og:title" content="TensorFlow Extended (TFX) | ML Production Pipelines"> <meta name="description" content="Build and manage end-to-end production ML pipelines. TFX components enable scalable, high-performance data processing, model training and deployment."> <meta property="og:description" content="Build and manage end-to-end production ML pipelines. TFX components enable scalable, high-performance data processing, model training and deployment."> <meta property="og:url" content="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/tfx"> <meta property="og:image" content="https://web.archive.org/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/project-logos/tensorflow-extended-tfx-logo-social.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"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0, height=device-height"> <link href="https://web.archive.org/web/20210414163336cs_/https://fonts.googleapis.com/css?family=Google+Sans:+400,500,700" rel="stylesheet" data-page-link> </head> <body class="" template="page" theme="tensorflow-theme" type="marketing" layout="full" pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"><devsite-header> <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="/web/20210414163336/https://www.tensorflow.org/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="tensorFlow" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="https://web.archive.org/web/20210414163336im_/https://www.gstatic.com/devrel-devsite/prod/v611aa55c57477cd8cd7cf431e9c41501ac9b499722f27f5e58377ae7957507df/tensorflow/images/lockup.svg" class="devsite-site-logo" alt="TensorFlow"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> </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://web.archive.org/web/20210414163336/https://www.tensorflow.org/install" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="install" data-category="Site-Wide Custom Events" data-label="Tab: Install"> Install </a> </tab> <tab dropdown active> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/learn" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="learn" aria-label="Learn, selected" data-category="Site-Wide Custom Events" data-label="Tab: Learn"> Learn </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Learn" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="learn" data-category="Site-Wide Custom Events" data-label="Tab: Learn" 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 tfo-menu-column-learn"> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/learn" track-type="navMenu" track-name="Introduction" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/learn" tooltip> <div class="devsite-nav-item-title"> Introduction </div> <div class="devsite-nav-item-description"> New to TensorFlow? </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/overview" track-type="navMenu" track-name="TensorFlow" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/overview" tooltip> <div class="devsite-nav-item-title"> TensorFlow </div> <div class="devsite-nav-item-description"> The core open source ML library </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/js" track-type="navMenu" track-name="For JavaScript" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/js" tooltip> <div class="devsite-nav-item-title"> For JavaScript </div> <div class="devsite-nav-item-description"> TensorFlow.js for ML using JavaScript </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/lite" track-type="navMenu" track-name="For Mobile &amp; IoT" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/lite" tooltip> <div class="devsite-nav-item-title"> For Mobile &amp; IoT </div> <div class="devsite-nav-item-description"> TensorFlow Lite for mobile and embedded devices </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/tfx" track-type="navMenu" track-name="For Production" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/tfx" tooltip> <div class="devsite-nav-item-title"> For Production </div> <div class="devsite-nav-item-description"> TensorFlow Extended for end-to-end ML components </div> </a> </li> </ul> </div> </div> </div> </tab> <tab dropdown> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/api" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="aPI" data-category="Site-Wide Custom Events" data-label="Tab: API"> API </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for API" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="aPI" data-category="Site-Wide Custom Events" data-label="Tab: API" 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://web.archive.org/web/20210414163336/https://www.tensorflow.org/api/stable" track-type="navMenu" track-name="TensorFlow (v2.4.1)" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/api/stable" tooltip> <div class="devsite-nav-item-title"> TensorFlow (v2.4.1) </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/api/r1.15" track-type="navMenu" track-name="r1.15" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/api/r1.15" tooltip> <div class="devsite-nav-item-title"> r1.15 </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/versions" track-type="navMenu" track-name="Versions…" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/versions" tooltip> <div class="devsite-nav-item-title"> Versions… </div> </a> </li> </ul> </div> <div class="devsite-tabs-dropdown-column "> <ul class="devsite-tabs-dropdown-section "> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://js.tensorflow.org/api/latest/" track-type="navMenu" track-name="TensorFlow.js" track-metadata-position="nav" track-metadata-href="https://js.tensorflow.org/api/latest/" tooltip> <div class="devsite-nav-item-title"> TensorFlow.js </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/lite/api_docs" track-type="navMenu" track-name="TensorFlow Lite" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/lite/api_docs" tooltip> <div class="devsite-nav-item-title"> TensorFlow Lite </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/tfx/api_docs" track-type="navMenu" track-name="TFX" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/tfx/api_docs" tooltip> <div class="devsite-nav-item-title"> TFX </div> </a> </li> </ul> </div> </div> </div> </tab> <tab dropdown> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/resources/models-datasets" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="resources" data-category="Site-Wide Custom Events" data-label="Tab: Resources"> Resources </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Resources" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="resources" data-category="Site-Wide Custom Events" data-label="Tab: Resources" 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://web.archive.org/web/20210414163336/https://www.tensorflow.org/resources/models-datasets" track-type="navMenu" track-name="Models &amp; datasets" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/resources/models-datasets" tooltip> <div class="devsite-nav-item-title"> Models &amp; datasets </div> <div class="devsite-nav-item-description"> Pre-trained models and datasets built by Google and the community </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/resources/tools" track-type="navMenu" track-name="Tools" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/resources/tools" tooltip> <div class="devsite-nav-item-title"> Tools </div> <div class="devsite-nav-item-description"> Ecosystem of tools to help you use TensorFlow </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/resources/libraries-extensions" track-type="navMenu" track-name="Libraries &amp; extensions" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/resources/libraries-extensions" tooltip> <div class="devsite-nav-item-title"> Libraries &amp; extensions </div> <div class="devsite-nav-item-description"> Libraries and extensions built on TensorFlow </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/certificate" track-type="navMenu" track-name="TensorFlow Certificate program" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/certificate" tooltip> <div class="devsite-nav-item-title"> TensorFlow Certificate program </div> <div class="devsite-nav-item-description"> Differentiate yourself by demonstrating your ML proficiency </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/resources/learn-ml" track-type="navMenu" track-name="Learn ML" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/resources/learn-ml" tooltip> <div class="devsite-nav-item-title"> Learn ML </div> <div class="devsite-nav-item-description"> Educational resources to learn the fundamentals of ML with TensorFlow </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/responsible_ai" track-type="navMenu" track-name="Responsible AI" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/responsible_ai" tooltip> <div class="devsite-nav-item-title"> Responsible AI </div> <div class="devsite-nav-item-description"> Resources and tools to integrate Responsible AI practices into your ML workflow </div> </a> </li> </ul> </div> </div> </div> </tab> <tab> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/community" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="community" data-category="Site-Wide Custom Events" data-label="Tab: Community"> Community </a> </tab> <tab dropdown> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/about" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="whyTensorFlow" data-category="Site-Wide Custom Events" data-label="Tab: Why TensorFlow"> Why TensorFlow </a> <a href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Dropdown menu for Why TensorFlow" track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="whyTensorFlow" data-category="Site-Wide Custom Events" data-label="Tab: Why TensorFlow" 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://web.archive.org/web/20210414163336/https://www.tensorflow.org/about" track-type="navMenu" track-name="About" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/about" tooltip> <div class="devsite-nav-item-title"> About </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/about/case-studies" track-type="navMenu" track-name="Case studies" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/about/case-studies" tooltip> <div class="devsite-nav-item-title"> Case studies </div> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/partners" track-type="navMenu" track-name="AI Service Partners" track-metadata-position="nav" track-metadata-href="https://www.tensorflow.org/partners" tooltip> <div class="devsite-nav-item-title"> AI Service Partners </div> </a> </li> </ul> </div> </div> </div> </tab> </nav> </devsite-tabs> </div> <devsite-search aria-expanded="false" aria-haspopup="listbox" enable-signin enable-search enable-suggestions enable-query-completion project-name="TFX" tenant-name="TensorFlow" role="combobox"> <form class="devsite-search-form" action="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/s/results" method="GET"> <div class="devsite-search-container"> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-haspopup="false" aria-multiline="false" aria-label="Search box" 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> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> </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> <devsite-select class="devsite-language-selector-menu"> <select aria-label="Select your language preference." class="devsite-language-selector-select" name="language" track-name="click" track-type="languageSelector"> <option>Language</option> <option value="en" lang="en" track-metadata-original-language="en" track-metadata-selected-language="en" track-name="changed" track-type="languageSelector"> English </option> <option value="id" lang="id" track-metadata-original-language="en" track-metadata-selected-language="id" track-name="changed" track-type="languageSelector"> Bahasa Indonesia </option> <option value="de" lang="de" track-metadata-original-language="en" track-metadata-selected-language="de" track-name="changed" track-type="languageSelector"> Deutsch </option> <option value="es_419" lang="es_419" track-metadata-original-language="en" track-metadata-selected-language="es_419" track-name="changed" track-type="languageSelector"> Español – América Latina </option> <option value="fr" lang="fr" track-metadata-original-language="en" track-metadata-selected-language="fr" track-name="changed" track-type="languageSelector"> Français </option> <option value="it" lang="it" track-metadata-original-language="en" track-metadata-selected-language="it" track-name="changed" track-type="languageSelector"> Italiano </option> <option value="pl" lang="pl" track-metadata-original-language="en" track-metadata-selected-language="pl" track-name="changed" track-type="languageSelector"> Polski </option> <option value="pt_br" lang="pt_br" track-metadata-original-language="en" track-metadata-selected-language="pt_br" track-name="changed" track-type="languageSelector"> Português – Brasil </option> <option value="vi" lang="vi" track-metadata-original-language="en" track-metadata-selected-language="vi" track-name="changed" track-type="languageSelector"> Tiếng Việt </option> <option value="tr" lang="tr" track-metadata-original-language="en" track-metadata-selected-language="tr" track-name="changed" track-type="languageSelector"> Türkçe </option> <option value="ru" lang="ru" track-metadata-original-language="en" track-metadata-selected-language="ru" track-name="changed" track-type="languageSelector"> Русский </option> <option value="he" lang="he" track-metadata-original-language="en" track-metadata-selected-language="he" track-name="changed" track-type="languageSelector"> עברית&#39; </option> <option value="ar" lang="ar" track-metadata-original-language="en" track-metadata-selected-language="ar" track-name="changed" track-type="languageSelector"> العربيّة </option> <option value="fa" lang="fa" track-metadata-original-language="en" track-metadata-selected-language="fa" track-name="changed" track-type="languageSelector"> فارسی </option> <option value="hi" lang="hi" track-metadata-original-language="en" track-metadata-selected-language="hi" track-name="changed" track-type="languageSelector"> हिंदी </option> <option value="bn" lang="bn" track-metadata-original-language="en" track-metadata-selected-language="bn" track-name="changed" track-type="languageSelector"> বাংলা </option> <option value="th" lang="th" track-metadata-original-language="en" track-metadata-selected-language="th" track-name="changed" track-type="languageSelector"> ภาษาไทย </option> <option value="zh_cn" lang="zh_cn" track-metadata-original-language="en" track-metadata-selected-language="zh_cn" track-name="changed" track-type="languageSelector"> 中文 – 简体 </option> <option value="zh_tw" lang="zh_tw" track-metadata-original-language="en" track-metadata-selected-language="zh_tw" track-name="changed" track-type="languageSelector"> 中文 – 繁體 </option> <option value="ja" lang="ja" track-metadata-original-language="en" track-metadata-selected-language="ja" track-name="changed" track-type="languageSelector"> 日本語 </option> <option value="ko" lang="ko" track-metadata-original-language="en" track-metadata-selected-language="ko" track-name="changed" track-type="languageSelector"> 한국어 </option> </select> </devsite-select> </devsite-language-selector> <a class="devsite-header-link devsite-top-button button gc-analytics-event" href="//web.archive.org/web/20210414163336/https://github.com/tensorflow" data-category="Site-Wide Custom Events" data-label="Site header link"> GitHub </a> <devsite-user id="devsite-user"></devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row"> <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/tfx" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="TFX"> For Production </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab active> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/tfx" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="overview" aria-label="Overview, selected" data-category="Site-Wide Custom Events" data-label="Tab: Overview"> Overview </a> </tab> <tab> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/tfx/tutorials" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="tutorials" data-category="Site-Wide Custom Events" data-label="Tab: Tutorials"> Tutorials </a> </tab> <tab> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/tfx/guide" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="guide" data-category="Site-Wide Custom Events" data-label="Tab: Guide"> Guide </a> </tab> <tab> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/tfx/api_overview" class="gc-analytics-event " track-type="globalNav" track-metadata-position="nav" track-metadata-eventdetail="nav" track-name="aPI" data-category="Site-Wide Custom Events" data-label="Tab: API"> API </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars hidden> <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="/web/20210414163336/https://www.tensorflow.org/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="tensorFlow" track-metadata-position="nav" track-metadata-eventdetail="nav"> <img src="https://web.archive.org/web/20210414163336im_/https://www.gstatic.com/devrel-devsite/prod/v611aa55c57477cd8cd7cf431e9c41501ac9b499722f27f5e58377ae7957507df/tensorflow/images/lockup.svg" class="devsite-site-logo" alt="TensorFlow"> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list"> <li class="devsite-breadcrumb-item "> </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="/web/20210414163336/https://www.tensorflow.org/install" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Install" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="install"> <span class="devsite-nav-text" tooltip> Install </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/learn" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="learn"> <span class="devsite-nav-text" tooltip> Learn </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip menu="Learn"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Learn"> </span> </span> </li> </ul> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/tfx" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Overview" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="overview"> <span class="devsite-nav-text" tooltip> Overview </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/tfx/tutorials" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tutorials" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="tutorials"> <span class="devsite-nav-text" tooltip> Tutorials </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/tfx/guide" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guide" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="guide"> <span class="devsite-nav-text" tooltip> Guide </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/tfx/api_overview" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Responsive Tab: API" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="aPI"> <span class="devsite-nav-text" tooltip> API </span> <span class="devsite-nav-icon material-icons" data-icon="forward"> </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/api" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: API" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="aPI"> <span class="devsite-nav-text" tooltip> API </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip menu="API"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="API"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/resources/models-datasets" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Resources" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="resources"> <span class="devsite-nav-text" tooltip> Resources </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip menu="Resources"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Resources"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/community" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Community" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="community"> <span class="devsite-nav-text" tooltip> Community </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/about" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Why TensorFlow" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="whyTensorFlow"> <span class="devsite-nav-text" tooltip> Why TensorFlow </span> </a> <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu "> <li class="devsite-nav-item"> <span class="devsite-nav-title" tooltip> <span class="devsite-nav-text" tooltip menu="Why TensorFlow"> More </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Why TensorFlow"> </span> </span> </li> </ul> </li> <li class="devsite-nav-item"> <a href="//web.archive.org/web/20210414163336/https://github.com/tensorflow" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: GitHub" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="gitHub"> <span class="devsite-nav-text" tooltip> GitHub </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom" role="navigation"> <ul class="devsite-nav-list" menu="Learn" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/learn" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Introduction" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="introduction"> <span class="devsite-nav-text" tooltip> Introduction </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/overview" 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" track-name="tensorFlow"> <span class="devsite-nav-text" tooltip> TensorFlow </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/js" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: For JavaScript" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="forJavaScript"> <span class="devsite-nav-text" tooltip> For JavaScript </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/lite" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: For Mobile &amp; IoT" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="forMobile&amp;IoT"> <span class="devsite-nav-text" tooltip> For Mobile &amp; IoT </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/tfx" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: For Production" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="forProduction"> <span class="devsite-nav-text" tooltip> For Production </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="API" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/api/stable" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow (v2.4.1)" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="tensorFlow(v2.4.1)"> <span class="devsite-nav-text" tooltip> TensorFlow (v2.4.1) </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/api/r1.15" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: r1.15" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="r1.15"> <span class="devsite-nav-text" tooltip> r1.15 </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/versions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Versions…" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="versions…"> <span class="devsite-nav-text" tooltip> Versions… </span> </a> </li> <li class="devsite-nav-item"> <a href="https://web.archive.org/web/20210414163336/https://js.tensorflow.org/api/latest/" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow.js" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="tensorFlowJs"> <span class="devsite-nav-text" tooltip> TensorFlow.js </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/lite/api_docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow Lite" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="tensorFlowLite"> <span class="devsite-nav-text" tooltip> TensorFlow Lite </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/tfx/api_docs" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TFX" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="tFX"> <span class="devsite-nav-text" tooltip> TFX </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Resources" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/resources/models-datasets" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Models &amp; datasets" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="models&amp;Datasets"> <span class="devsite-nav-text" tooltip> Models &amp; datasets </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/resources/tools" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Tools" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="tools"> <span class="devsite-nav-text" tooltip> Tools </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/resources/libraries-extensions" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Libraries &amp; extensions" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="libraries&amp;Extensions"> <span class="devsite-nav-text" tooltip> Libraries &amp; extensions </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/certificate" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: TensorFlow Certificate program" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="tensorFlowCertificateProgram"> <span class="devsite-nav-text" tooltip> TensorFlow Certificate program </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/resources/learn-ml" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Learn ML" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="learnML"> <span class="devsite-nav-text" tooltip> Learn ML </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/responsible_ai" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Responsible AI" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="responsibleAI"> <span class="devsite-nav-text" tooltip> Responsible AI </span> </a> </li> </ul> <ul class="devsite-nav-list" menu="Why TensorFlow" aria-label="Side menu" hidden> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/about" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: About" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="about"> <span class="devsite-nav-text" tooltip> About </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/about/case-studies" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Case studies" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="caseStudies"> <span class="devsite-nav-text" tooltip> Case studies </span> </a> </li> <li class="devsite-nav-item"> <a href="/web/20210414163336/https://www.tensorflow.org/partners" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Responsive Tab: AI Service Partners" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav" track-name="aIServicePartners"> <span class="devsite-nav-text" tooltip> AI Service Partners </span> </a> </li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content"> <devsite-toc class="devsite-nav" disabled></devsite-toc> <devsite-content> <article class="devsite-article"><style> /* Styles inlined from /site-assets/css/style.css */ /* override theme */ table img { max-width: 100%; } /* Use min column width to avoid collapse to label width. */ .tfo-menu-column-learn { min-width: 210px; } /* .devsite-terminal virtualenv prompt */ .tfo-terminal-venv::before { content: "(venv) $ " !important; } /* .devsite-terminal root prompt */ .tfo-terminal-root::before { content: "# " !important; } /* Used in links for type annotations in function/method signatures */ .tfo-signature-link a, .tfo-signature-link a:visited, .tfo-signature-link a:hover, .tfo-signature-link a:focus, .tfo-signature-link a:hover *, .tfo-signature-link a:focus * { text-decoration: none !important; } .tfo-signature-link a, .tfo-signature-link a:visited { border-bottom: 1px dotted #1a73e8; } .tfo-signature-link a:focus { border-bottom-style: solid; } /* .devsite-terminal Windows prompt */ .tfo-terminal-windows::before { content: "C:\\> " !important; } /* .devsite-terminal Windows prompt w/ virtualenv */ .tfo-terminal-windows-venv::before { content: "(venv) C:\\> " !important; } .tfo-diff-green-one-level + * { background: rgba(175, 245, 162, .6) !important; } .tfo-diff-green + * > * { background: rgba(175, 245, 162, .6) !important; } .tfo-diff-green-list + ul > li:first-of-type { background: rgba(175, 245, 162, .6) !important; } .tfo-diff-red-one-level + * { background: rgba(255, 230, 230, .6) !important; text-decoration: line-through !important; } .tfo-diff-red + * > * { background: rgba(255, 230, 230, .6) !important; text-decoration: line-through !important; } .tfo-diff-red-list + ul > li:first-of-type { background: rgba(255, 230, 230, .6) !important; text-decoration: line-through !important; } devsite-code .tfo-notebook-code-cell-output { max-height: 300px; overflow: auto; background: rgba(255, 247, 237, 1); /* orange bg to distinguish from input code cells */ } devsite-code .tfo-notebook-code-cell-output + .devsite-code-buttons-container button { background: rgba(255, 247, 237, .7); /* orange bg to distinguish from input code cells */ } devsite-code[dark-code] .tfo-notebook-code-cell-output { background: rgba(64, 78, 103, 1); /* medium slate */ } devsite-code[dark-code] .tfo-notebook-code-cell-output + .devsite-code-buttons-container button { background: rgba(64, 78, 103, .7); /* medium slate */ } /* override default table styles for notebook buttons */ .devsite-table-wrapper .tfo-notebook-buttons { display: inline-block; margin-left: 3px; width: auto; } .tfo-notebook-buttons td { padding-left: 0; padding-right: 20px; } .tfo-notebook-buttons a, .tfo-notebook-buttons :link, .tfo-notebook-buttons :visited { border-radius: 8px; box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .3), 0 1px 3px 1px rgba(60, 64, 67, .15); color: #202124; padding: 12px 17px; transition: box-shadow 0.2s; } .tfo-notebook-buttons a:hover, .tfo-notebook-buttons a:focus { box-shadow: 0 1px 2px 0 rgba(60, 64, 67, .3), 0 2px 6px 2px rgba(60, 64, 67, .15); } .tfo-notebook-buttons tr { background: 0; border: 0; } /* on rendered notebook page, remove link to webpage since we're already here */ .tfo-notebook-buttons:not(.tfo-api) td:first-child { display: none; } .tfo-notebook-buttons td > a { -webkit-box-align: center; -ms-flex-align: center; align-items: center; display: -webkit-box; display: -ms-flexbox; display: flex; } .tfo-notebook-buttons td > a > img { margin-right: 8px; } /* landing pages */ .tfo-landing-row-item-inset-white { background-color: #fff; padding: 32px; } .tfo-landing-row-item-inset-white ol, .tfo-landing-row-item-inset-white ul { padding-left: 20px; } /* colab callout button */ .colab-callout-row devsite-code { border-radius: 8px 8px 0 0; box-shadow: none; } .colab-callout-footer { background: #e3e4e7; border-radius: 0 0 8px 8px; color: #37474f; padding: 20px; } .colab-callout-row devsite-code[dark-code] + .colab-callout-footer { background: #3f4f66; } .colab-callout-footer > .button { margin-top: 4px; color: #ff5c00; } .colab-callout-footer > a > span { padding-top: 10px; vertical-align: middle; color: #37474f; padding-left: 10px; padding-right: 10px; font-size: 14px; } .colab-callout-row devsite-code[dark-code] + .colab-callout-footer > a > span { color: #fff; } a.colab-button { background: rgba(255, 255, 255, .75); border: solid 1px rgba(0, 0, 0, .08); border-bottom-color: rgba(0, 0, 0, .15); border-radius: 4px; color: #aaa; display: inline-block; font-size: 11px !important; font-weight: 300; line-height: 16px; padding: 4px 8px; text-decoration: none; text-transform: uppercase; } a.colab-button:hover { background: white; border-color: rgba(0, 0, 0, .2); color: #666; } a.colab-button span { background: url(/web/20210414163336im_/https://www.tensorflow.org/images/colab_logo_button.svg) no-repeat 1px 1px / 20px; border-radius: 4px; display: inline-block; padding-left: 24px; text-decoration: none; } @media screen and (max-width: 600px) { .tfo-notebook-buttons td { display: block; } } /* guide and tutorials landing page cards and sections */ .tfo-landing-page-card { padding: 16px; box-shadow: 0 0 36px rgba(0,0,0,0.1); border-radius: 10px; } /* Page section headings */ .tfo-landing-page-heading h2, h2.tfo-landing-page-heading { font-family: "Google Sans", sans-serif; color: #425066; font-size: 30px; font-weight: 700; line-height: 40px; } /* Item title headings */ .tfo-landing-page-heading h3, h3.tfo-landing-page-heading, .tfo-landing-page-card h3, h3.tfo-landing-page-card { font-family: "Google Sans", sans-serif; color: #425066; font-size: 20px; font-weight: 500; line-height: 26px; } /* List of tutorials notebooks for subsites */ .tfo-landing-page-resources-ul { padding-left: 15px } .tfo-landing-page-resources-ul > li { margin: 6px 0; } /* Temporary fix to hide product description in header on landing pages */ devsite-header .devsite-product-description { display: none; } </style><style> /* Styles inlined from /site-assets/css/prod.min.css */ .tensorsite-icon--address::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='%23425066' fill-rule='nonzero' d='M11.6667 0L11.56.02 8 1.4 4 0 .24 1.2667c-.14.0466-.24.1666-.24.32v10.08C0 11.8533.1467 12 .3333 12l.1067-.02L4 10.6 8 12l3.76-1.2667c.14-.0466.24-.1666.24-.32V.3333A.3301.3301 0 0 0 11.6667 0zM8 10.6667L4 9.26V1.3333L8 2.74v7.9267z'/%3E%3Cpath d='M-2-2h16v16H-2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--build span::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M1 11h1v-1H1v1zm1-2H1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm7-6h1V2H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM9 7h1V6H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zM5 7h1V6H5v1zm1-2H5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zm3 6h1v-1H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm-5 2h1v-1H5v1zm1-2H5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1z' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--build span::after{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M1 11h1v-1H1v1zm1-2H1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm7-6h1V2H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1zM9 7h1V6H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zM5 7h1V6H5v1zm1-2H5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1zm3 6h1v-1H9v1zm1-2H9a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm-5 2h1v-1H5v1zm1-2H5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1z' fill='%23ffffff%0A'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--certificate span::after{background-image:url("data:image/svg+xml,%3Csvg width='24' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 0h24v24H0z'/%3E%3Cg fill='%23425066'%3E%3Cpath d='M12 9.6l-3.84 2.88a2.3984 2.3984 0 0 0-.96 1.92v8.6378c0 .792.9024 1.2433 1.536.768L12 21.966l3.264 1.8399c.6336.4752 1.536.024 1.536-.768V14.4c0-.756-.3552-1.4664-.96-1.92L12 9.6z'/%3E%3Cpath d='M6 6c0 3.3144 2.6856 6 6 6s6-2.6856 6-6-2.6856-6-6-6-6 2.6856-6 6'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--check::before{background-image:url("data:image/svg+xml,%3Csvg width='21' height='20' viewBox='0 0 21 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform='translate(1 1)' fill='none' fill-rule='evenodd'%3E%3Ccircle stroke='%23FF6F00' cx='9' cy='9' r='9'/%3E%3Cpath stroke='%23425066' stroke-width='3' d='M4 9l3.729 3.729L18.064 2.393'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--code span::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M4.832 1.126a.5.5 0 0 0-.706.042l-4 4.5a.5.5 0 0 0 0 .664l4 4.5a.5.5 0 1 0 .748-.664L1.169 6l3.705-4.168a.5.5 0 0 0-.042-.706m7.042 5.206l-4 4.5a.5.5 0 1 1-.748-.664L10.831 6 7.126 1.832a.5.5 0 1 1 .748-.664l4 4.5a.5.5 0 0 1 0 .664' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--code span::after{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M4.832 1.126a.5.5 0 0 0-.706.042l-4 4.5a.5.5 0 0 0 0 .664l4 4.5a.5.5 0 1 0 .748-.664L1.169 6l3.705-4.168a.5.5 0 0 0-.042-.706m7.042 5.206l-4 4.5a.5.5 0 1 1-.748-.664L10.831 6 7.126 1.832a.5.5 0 1 1 .748-.664l4 4.5a.5.5 0 0 1 0 .664' fill='%23ffffff%0A'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--download span::before{background-image:url("data:image/svg+xml,<svg width='16' height='16' xmlns='http://www.w3.org/2000/svg'><g fill='none' fill-rule='evenodd'><path d='M0 16h16V0H0z'/><g fill='%23ff6f00'><path d='M13.2207 6h-2.721V1.5c0-.276-.223-.5-.5-.5h-4c-.276 0-.5.224-.5.5V6h-2.721c-.455 0-.673.559-.339.867l5.221 4.82c.192.176.487.176.679 0l5.221-4.82c.334-.308.116-.867-.34-.867M2 13.5v1c0 .276.224.5.5.5h11c.276 0 .5-.224.5-.5v-1c0-.276-.224-.5-.5-.5h-11c-.276 0-.5.224-.5.5'/></g></g></svg>")}.tensorsite-icon--download span::after{background-image:url("data:image/svg+xml,<svg width='16' height='16' xmlns='http://www.w3.org/2000/svg'><g fill='none' fill-rule='evenodd'><path d='M0 16h16V0H0z'/><g fill='%23425066'><path d='M13.2207 6h-2.721V1.5c0-.276-.223-.5-.5-.5h-4c-.276 0-.5.224-.5.5V6h-2.721c-.455 0-.673.559-.339.867l5.221 4.82c.192.176.487.176.679 0l5.221-4.82c.334-.308.116-.867-.34-.867M2 13.5v1c0 .276.224.5.5.5h11c.276 0 .5-.224.5-.5v-1c0-.276-.224-.5-.5-.5h-11c-.276 0-.5.224-.5.5'/></g></g></svg>")}.tensorsite-icon--email::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='12'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-2h16v16H-1z'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' d='M12.3333.6667H1.6667C.9333.6667.34 1.2667.34 2l-.0067 8c0 .7333.6 1.3333 1.3334 1.3333h10.6666c.7334 0 1.3334-.6 1.3334-1.3333V2c0-.7333-.6-1.3333-1.3334-1.3333zm0 9.3333H1.6667V3.3333L7 6.6667l5.3333-3.3334V10zM7 5.3333L1.6667 2h10.6666L7 5.3333z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--external span::before,.tensorsite-icon--newsletter span::before{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M10 1H2c-.6 0-1 .4-1 1s.4 1 1 1h5.6L1.3 9.3c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0L9 4.4V10c0 .6.4 1 1 1s1-.4 1-1V2c0-.6-.4-1-1-1z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(2 2)'%3E%3Cmask id='b' fill='%23ff6f00'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ff6f00' xlink:href='%23a'/%3E%3Cpath fill='%23ff6f00' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 0h12v12H0z'/%3E%3C/g%3E%3Cpath fill='none' d='M2 2h12v12H2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--external span::after,.tensorsite-icon--newsletter span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M10 1H2c-.6 0-1 .4-1 1s.4 1 1 1h5.6L1.3 9.3c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0L9 4.4V10c0 .6.4 1 1 1s1-.4 1-1V2c0-.6-.4-1-1-1z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(2 2)'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 0h12v12H0z'/%3E%3C/g%3E%3Cpath fill='none' d='M2 2h12v12H2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--github span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='32' height='32' viewBox='0 0 22 22' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M12 1C5.924 1 1 5.925 1 12c0 4.86 3.151 8.982 7.523 10.438.55.1.751-.24.751-.531 0-.26-.01-.953-.015-1.87-3.06.664-3.705-1.475-3.705-1.475-.5-1.271-1.222-1.609-1.222-1.609-.998-.683.076-.67.076-.67 1.104.08 1.685 1.135 1.685 1.135.981 1.68 2.574 1.195 3.201.914.1-.711.384-1.196.698-1.47-2.442-.278-5.01-1.222-5.01-5.437 0-1.2.429-2.183 1.132-2.952-.113-.278-.49-1.396.108-2.91 0 0 .924-.297 3.025 1.127a10.536 10.536 0 0 1 2.754-.371c.934.005 1.875.126 2.753.37 2.1-1.423 3.022-1.127 3.022-1.127.6 1.515.223 2.633.11 2.911.705.77 1.13 1.751 1.13 2.952 0 4.225-2.571 5.155-5.022 5.427.395.34.747 1.011.747 2.038 0 1.47-.014 2.656-.014 3.017 0 .294.198.637.757.53C19.85 20.977 23 16.858 23 12 23 5.925 18.075 1 12 1' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-1 -1)'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-1-1h24v24H-1z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--codepen span::after{background-image:url("data:image/svg+xml,%3Csvg enable-background='new 0 0 500 500' height='500' viewBox='0 0 500 500' width='500' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m250.001 0c-138.074 0-250.001 111.927-250.001 250.001 0 138.076 111.927 249.999 250.001 249.999 138.072 0 249.999-111.923 249.999-249.999 0-138.074-111.927-250.001-249.999-250.001zm0 458.943c-115.212 0-208.941-93.733-208.941-208.942 0-115.208 93.729-208.941 208.941-208.941 115.208 0 208.938 93.733 208.938 208.941 0 115.209-93.729 208.942-208.938 208.942z'/%3E%3Cpath d='m404.462 201.172c-.028-.195-.076-.382-.109-.577-.065-.374-.135-.748-.232-1.114-.057-.22-.138-.431-.206-.642-.106-.326-.212-.651-.342-.968-.091-.22-.196-.439-.297-.651-.14-.3-.285-.593-.452-.877-.122-.212-.251-.416-.377-.618-.18-.277-.362-.546-.562-.806-.146-.194-.3-.39-.454-.577-.212-.243-.432-.487-.664-.716-.174-.178-.346-.357-.528-.521-.244-.219-.496-.431-.752-.633-.198-.155-.395-.31-.602-.456-.078-.049-.146-.114-.22-.163l-141.296-94.197c-4.464-2.976-10.274-2.976-14.738 0l-141.295 94.196c-.073.049-.142.114-.219.163-.208.146-.403.301-.598.456-.26.203-.512.415-.752.633-.187.164-.357.342-.533.521-.231.229-.451.473-.658.716-.159.188-.313.383-.459.577-.195.26-.383.529-.557.806-.134.203-.26.406-.382.618-.163.284-.309.577-.451.877-.102.211-.208.431-.297.651-.13.317-.236.642-.341.968-.07.211-.146.422-.208.642-.097.366-.162.74-.231 1.114-.032.195-.081.382-.106.577-.077.569-.122 1.146-.122 1.732v94.197c0 .585.044 1.162.122 1.74.025.188.074.382.106.568.069.374.134.748.231 1.114.062.22.138.432.208.643.105.324.211.65.341.975.089.222.195.433.297.645.143.3.289.592.451.885.122.204.248.406.382.61.174.276.362.545.557.806.146.203.301.391.459.577.208.243.427.488.658.716.175.178.346.357.533.52.24.221.492.432.752.635.195.155.391.31.598.454.077.05.146.115.219.163l141.295 94.197c2.231 1.487 4.802 2.236 7.371 2.236 2.566 0 5.135-.749 7.368-2.236l141.295-94.197c.074-.048.142-.113.22-.163.207-.145.403-.299.602-.454.256-.203.508-.414.752-.635.183-.162.354-.342.528-.52.232-.228.452-.473.664-.716.154-.187.308-.374.454-.577.2-.261.383-.529.562-.806.126-.204.255-.406.377-.61.167-.293.312-.585.452-.885.101-.212.206-.423.297-.645.13-.324.235-.65.342-.975.068-.211.149-.423.206-.643.098-.366.167-.74.232-1.114.033-.187.081-.381.109-.568.073-.578.119-1.155.119-1.74v-94.197c0-.585-.046-1.162-.119-1.731zm-141.176-67.639 104.088 69.387-46.493 31.103-57.595-38.527zm-26.571 0v61.963l-57.592 38.527-46.497-31.103zm-114.725 94.238 33.238 22.231-33.238 22.233zm114.725 138.7-104.088-69.388 46.497-31.094 57.592 38.52v61.962zm13.286-85.04-46.988-31.429 46.988-31.428 46.985 31.428zm13.285 85.04v-61.962l57.595-38.52 46.493 31.094zm114.724-94.237-33.233-22.233 33.233-22.231z'/%3E%3C/svg%3E")}.tensorsite-icon--glitch span::after{background-image:url("data:image/svg+xml,%3Csvg width='310' height='310' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M80.2 153.3c-10.37 1.94-16.1 1.71-24.3 1.71-8.56 0-42.4-13.03-53.32-27 0 0 16.94-4.18 16.94-7.73 0-3.54-19.35-10.09-19.35-10.09s-2.93-16.34 17.8-32.66c20.74-16.31 36.26-24.06 53.7-24.97 17.43-.9 23.28-.9 23.28-.9s15.18-20.77 23.15-20.77c3.99 0 62.4 12.58 67.45 20.77 5.06 8.19 7.52 7.6 10.1 9.56 2.6 1.96.96.39 12.68 3.04 29.3 6.64 25.3 9.24 47.08 13.27 8.81 1.64 49.2-18.48 53-16.53 1.78.91 3.17 18.21-3.76 29.56-6.93 11.34 5.56 20.71-.05 34.92-5.61 14.2 6.43 24.72 3.82 29.53-2.62 4.81-45.5-15.74-53-14.25-7.52 1.49-30.47 12.67-77 19.73-16.74 2.54-33.85 2.16-48.94.68 3.96 7.66 3.1 15.34 3.1 15.34s-9.63 2.94-27.02-.8c-16.5-3.55-24.58-20.67-25.36-22.4z' fill='%23000'/%3E%3Cpath d='M80.62 75.1a43.7 43.7 0 011.4 1.85 53.93 53.93 0 013.2 5.08c2.41 4.36 4 8.68 4.39 12.62.21 2.16.06 4.78-.42 7.75a71.28 71.28 0 01-2.38 9.75 97.99 97.99 0 01-2.94 8.08c-.8 1.86-.14 4.1 1.5 5.03 1.64.91 3.62.15 4.43-1.71a106.06 106.06 0 003.24-8.88 79.35 79.35 0 002.66-10.9c.59-3.65.78-6.98.48-9.96-.52-5.24-2.47-10.55-5.36-15.77a61.43 61.43 0 00-5.38-8.09 3.04 3.04 0 00-4.67-.16 4.12 4.12 0 00-.15 5.3zM111.24 74.44a3697.76 3697.76 0 0120.5 1.13c4.46.26 8.21.5 11.09.7 10.83.76 27.52 3.3 40.27 5.88 19.54 3.95 35.49 9.8 60.82 21.18l8.72 3.94c1.7.76 3.62-.18 4.3-2.1.67-1.93-.16-4.11-1.86-4.88l-8.73-3.94c-25.7-11.54-42.02-17.53-62.1-21.59-12.97-2.62-29.9-5.2-41.01-5.99a999.18 999.18 0 00-16.13-.99 3703.41 3703.41 0 00-22.13-1.17l-.5-.03c-2.55-.13-4.26 2.92-3.08 5.48l.27.62c.23.54.5 1.15.77 1.84.81 1.98 1.62 4.13 2.37 6.4a75.27 75.27 0 012.7 10.27c.23 1.2.4 2.36.5 3.46.32 3.2-.4 8.7-1.94 15.67-.54 2.46-1.18 5.05-1.89 7.72a266.87 266.87 0 01-3.97 13.48c-.64 1.94.22 4.1 1.93 4.84 1.71.73 3.62-.25 4.26-2.2a70 70 0 00.36-1.1c.28-.89.6-1.89.93-2.99.96-3.14 1.93-6.47 2.82-9.86.74-2.78 1.4-5.48 1.98-8.06 1.72-7.8 2.52-14 2.1-18.34-.14-1.33-.34-2.7-.6-4.13-.65-3.65-1.69-7.5-3-11.42-.44-1.34-.9-2.65-1.38-3.9l1.63.08z' fill='%23FFF' fill-rule='nonzero'/%3E%3Cg transform='matrix(-1 0 0 1 58.34 81.29)'%3E%3Cellipse fill='%23000' cx='14.48' cy='16.43' rx='14.48' ry='16.43'/%3E%3Cpath d='M28.96 16.62v-.19C28.96 7.36 22.48 0 14.48 0S0 7.36 0 16.43c0 9.08 6.48 16.44 14.48 16.44 7.17 0 13.12-5.9 14.28-13.66-1 5.83-5.53 10.24-10.96 10.24-6.16 0-11.16-5.68-11.16-12.67 0-7 5-12.67 11.16-12.67 6.12 0 11.09 5.58 11.16 12.5z' fill='%23FFF'/%3E%3Cellipse fill='%23FFF' cx='21.12' cy='20.54' rx='3.02' ry='3.42'/%3E%3C/g%3E%3Cg%3E%3Cpath d='M80.2 254.62c-10.37 1.94-16.1 1.71-24.3 1.71-8.56 0-42.4-13.03-53.32-27 0 0 16.94-4.19 16.94-7.73S.17 211.51.17 211.51s-2.93-16.34 17.8-32.66c20.74-16.32 36.26-24.06 53.7-24.97 17.43-.9 23.28-.9 23.28-.9s15.18-20.78 23.15-20.78c3.99 0 62.4 12.59 67.45 20.78 5.06 8.19 7.52 7.59 10.1 9.55 2.6 1.97.96.4 12.68 3.05 29.3 6.64 25.3 9.24 47.08 13.27 8.81 1.63 49.2-18.48 53-16.53 1.78.91 3.17 18.21-3.76 29.56-6.93 11.34 5.56 20.7-.05 34.91-5.61 14.2 6.43 24.73 3.82 29.54-2.62 4.8-45.5-15.74-53-14.25-7.52 1.48-30.47 12.67-77 19.73-16.74 2.54-33.85 2.16-48.94.68 3.96 7.66 3.1 15.34 3.1 15.34s-9.63 2.93-27.02-.8c-16.5-3.55-24.58-20.68-25.36-22.41z' fill='%23000'/%3E%3Cpath d='M80.62 176.4c.05.07.18.22.35.46a53.93 53.93 0 014.25 6.5c2.41 4.34 4 8.67 4.39 12.61.21 2.16.06 4.78-.42 7.75a71.28 71.28 0 01-2.38 9.75 97.99 97.99 0 01-2.94 8.08c-.8 1.86-.14 4.1 1.5 5.02 1.64.92 3.62.15 4.43-1.7a106.06 106.06 0 003.24-8.88 79.35 79.35 0 002.66-10.91c.59-3.64.78-6.98.48-9.95-.52-5.24-2.47-10.55-5.36-15.77a61.43 61.43 0 00-5.38-8.1 3.04 3.04 0 00-4.67-.16 4.12 4.12 0 00-.15 5.3zM111.24 175.76a3697.76 3697.76 0 0120.5 1.12c4.46.27 8.21.5 11.09.7 10.83.77 27.52 3.3 40.27 5.89 19.54 3.95 35.49 9.8 60.82 21.18l8.72 3.93c1.7.77 3.62-.17 4.3-2.1.67-1.92-.16-4.1-1.86-4.87l-8.73-3.94c-25.7-11.55-42.02-17.53-62.1-21.6-12.97-2.62-29.9-5.2-41.01-5.98a999.18 999.18 0 00-16.13-.99 3703.41 3703.41 0 00-22.13-1.18l-.5-.02c-2.55-.13-4.26 2.92-3.08 5.48l.27.62c.23.53.5 1.15.77 1.84.81 1.98 1.62 4.13 2.37 6.39a75.27 75.27 0 012.7 10.28c.23 1.2.4 2.36.5 3.46.32 3.2-.4 8.7-1.94 15.66-.54 2.46-1.18 5.06-1.89 7.73a266.87 266.87 0 01-3.97 13.48c-.64 1.94.22 4.1 1.93 4.84 1.71.73 3.62-.26 4.26-2.2a70 70 0 00.36-1.1c.28-.89.6-1.89.93-2.99.96-3.14 1.93-6.48 2.82-9.86.74-2.79 1.4-5.49 1.98-8.07 1.72-7.79 2.52-13.99 2.1-18.33-.14-1.33-.34-2.71-.6-4.13-.65-3.65-1.69-7.5-3-11.43-.44-1.33-.9-2.64-1.38-3.9l1.63.09z' fill='%23FFF' fill-rule='nonzero'/%3E%3Cg transform='matrix(-1 0 0 1 58.34 182.6)'%3E%3Cellipse fill='%23000' cx='14.48' cy='16.43' rx='14.48' ry='16.43'/%3E%3Cpath d='M28.96 16.62v-.19C28.96 7.36 22.48 0 14.48 0S0 7.36 0 16.43c0 9.08 6.48 16.44 14.48 16.44 7.17 0 13.12-5.9 14.28-13.66-1 5.83-5.53 10.24-10.96 10.24-6.16 0-11.16-5.68-11.16-12.67 0-7 5-12.67 11.16-12.67 6.12 0 11.09 5.58 11.16 12.5z' fill='%23FFF'/%3E%3Cellipse fill='%23FFF' cx='21.12' cy='20.54' rx='3.02' ry='3.42'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--github--orange span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='32' height='32' viewBox='0 0 22 22' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M12 1C5.924 1 1 5.925 1 12c0 4.86 3.151 8.982 7.523 10.438.55.1.751-.24.751-.531 0-.26-.01-.953-.015-1.87-3.06.664-3.705-1.475-3.705-1.475-.5-1.271-1.222-1.609-1.222-1.609-.998-.683.076-.67.076-.67 1.104.08 1.685 1.135 1.685 1.135.981 1.68 2.574 1.195 3.201.914.1-.711.384-1.196.698-1.47-2.442-.278-5.01-1.222-5.01-5.437 0-1.2.429-2.183 1.132-2.952-.113-.278-.49-1.396.108-2.91 0 0 .924-.297 3.025 1.127a10.536 10.536 0 0 1 2.754-.371c.934.005 1.875.126 2.753.37 2.1-1.423 3.022-1.127 3.022-1.127.6 1.515.223 2.633.11 2.911.705.77 1.13 1.751 1.13 2.952 0 4.225-2.571 5.155-5.022 5.427.395.34.747 1.011.747 2.038 0 1.47-.014 2.656-.014 3.017 0 .294.198.637.757.53C19.85 20.977 23 16.858 23 12 23 5.925 18.075 1 12 1' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-1 -1)'%3E%3Cmask id='b' fill='%23ff6f00'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ff6f00' xlink:href='%23a'/%3E%3Cpath fill='%23ff6f00' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-1-1h24v24H-1z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--github--slate span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='32' height='32' viewBox='0 0 22 22' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M12 1C5.924 1 1 5.925 1 12c0 4.86 3.151 8.982 7.523 10.438.55.1.751-.24.751-.531 0-.26-.01-.953-.015-1.87-3.06.664-3.705-1.475-3.705-1.475-.5-1.271-1.222-1.609-1.222-1.609-.998-.683.076-.67.076-.67 1.104.08 1.685 1.135 1.685 1.135.981 1.68 2.574 1.195 3.201.914.1-.711.384-1.196.698-1.47-2.442-.278-5.01-1.222-5.01-5.437 0-1.2.429-2.183 1.132-2.952-.113-.278-.49-1.396.108-2.91 0 0 .924-.297 3.025 1.127a10.536 10.536 0 0 1 2.754-.371c.934.005 1.875.126 2.753.37 2.1-1.423 3.022-1.127 3.022-1.127.6 1.515.223 2.633.11 2.911.705.77 1.13 1.751 1.13 2.952 0 4.225-2.571 5.155-5.022 5.427.395.34.747 1.011.747 2.038 0 1.47-.014 2.656-.014 3.017 0 .294.198.637.757.53C19.85 20.977 23 16.858 23 12 23 5.925 18.075 1 12 1' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-1 -1)'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-1-1h24v24H-1z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--github--white span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='32' height='32' viewBox='0 0 22 22' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M12 1C5.924 1 1 5.925 1 12c0 4.86 3.151 8.982 7.523 10.438.55.1.751-.24.751-.531 0-.26-.01-.953-.015-1.87-3.06.664-3.705-1.475-3.705-1.475-.5-1.271-1.222-1.609-1.222-1.609-.998-.683.076-.67.076-.67 1.104.08 1.685 1.135 1.685 1.135.981 1.68 2.574 1.195 3.201.914.1-.711.384-1.196.698-1.47-2.442-.278-5.01-1.222-5.01-5.437 0-1.2.429-2.183 1.132-2.952-.113-.278-.49-1.396.108-2.91 0 0 .924-.297 3.025 1.127a10.536 10.536 0 0 1 2.754-.371c.934.005 1.875.126 2.753.37 2.1-1.423 3.022-1.127 3.022-1.127.6 1.515.223 2.633.11 2.911.705.77 1.13 1.751 1.13 2.952 0 4.225-2.571 5.155-5.022 5.427.395.34.747 1.011.747 2.038 0 1.47-.014 2.656-.014 3.017 0 .294.198.637.757.53C19.85 20.977 23 16.858 23 12 23 5.925 18.075 1 12 1' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-1 -1)'%3E%3Cmask id='b' fill='%23ffffff%0A'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ffffff%0A' xlink:href='%23a'/%3E%3Cpath fill='%23ffffff%0A' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-1-1h24v24H-1z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--google-ai span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='24' height='22' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M3.036 6.413c-.574 0-1.024.424-1.035.98-.013.564.465 1.035 1.042 1.027a1.015 1.015 0 0 0 1.012-1.014c.002-.554-.448-.993-1.019-.993m-.028 10.15c-.55.012-1.02.493-1.007 1.029a1.044 1.044 0 0 0 1.03 1.007 1.033 1.033 0 0 0 1.024-1.05 1.038 1.038 0 0 0-1.047-.987m.01-3.056a1.015 1.015 0 0 0 1.037-.99c.016-.559-.467-1.046-1.035-1.041A1.042 1.042 0 0 0 2 12.493a1.021 1.021 0 0 0 1.017 1.013m4.42 5.38c-.698-.007-1.22.498-1.226 1.184a1.19 1.19 0 0 0 1.196 1.223c.68.008 1.22-.517 1.227-1.193.007-.689-.505-1.21-1.197-1.215m-.04-12.769a1.192 1.192 0 0 0 1.237-1.184 1.174 1.174 0 0 0-1.186-1.227c-.702-.008-1.226.49-1.237 1.175a1.192 1.192 0 0 0 1.186 1.236m.049 7.723a1.206 1.206 0 0 0-1.235 1.223 1.214 1.214 0 0 0 1.208 1.217 1.214 1.214 0 0 0 1.216-1.21 1.205 1.205 0 0 0-1.189-1.23M7.422 8.72a1.186 1.186 0 0 0-1.21 1.209c0 .692.515 1.202 1.21 1.202.697 0 1.215-.514 1.213-1.203A1.187 1.187 0 0 0 7.422 8.72m4.41.123c.782-.005 1.43-.654 1.412-1.414a1.43 1.43 0 0 0-1.447-1.391 1.418 1.418 0 0 0-1.404 1.427c.012.79.63 1.383 1.44 1.378m1.41 8.698c.007-.769-.64-1.407-1.426-1.408-.785-.001-1.427.632-1.424 1.405a1.414 1.414 0 0 0 1.42 1.409 1.424 1.424 0 0 0 1.43-1.406M11.8 11.089a1.414 1.414 0 0 0-1.406 1.423 1.419 1.419 0 0 0 1.438 1.393 1.425 1.425 0 0 0 1.413-1.423c-.007-.77-.66-1.399-1.445-1.393m.033 10.08a1.436 1.436 0 0 0-1.439 1.402c-.012.77.627 1.42 1.405 1.429.777.009 1.43-.62 1.446-1.396.015-.752-.645-1.422-1.412-1.436M11.81 1c-.787 0-1.42.63-1.418 1.408A1.41 1.41 0 0 0 11.82 3.81c.793-.004 1.43-.635 1.425-1.412A1.416 1.416 0 0 0 11.811 1m4.349 17.487a1.624 1.624 0 0 0-1.658 1.62c-.008.957.692 1.673 1.637 1.676a1.648 1.648 0 0 0 1.675-1.656 1.651 1.651 0 0 0-1.654-1.64m.013-15.26c-.94-.008-1.655.679-1.671 1.602-.016.956.683 1.681 1.625 1.687.945.006 1.686-.715 1.687-1.642a1.64 1.64 0 0 0-1.641-1.647m-.013 10.2c-.94-.001-1.66.72-1.658 1.666.003.93.704 1.628 1.638 1.631.943.003 1.678-.723 1.674-1.654a1.663 1.663 0 0 0-1.654-1.642m1.654-3.486a1.673 1.673 0 0 0-1.669-1.675 1.635 1.635 0 0 0-1.643 1.644c-.005.945.718 1.679 1.652 1.673a1.667 1.667 0 0 0 1.66-1.642m2.666-.624c1.082.001 1.9-.805 1.901-1.875a1.88 1.88 0 0 0-1.897-1.895 1.873 1.873 0 0 0-1.899 1.89c-.006 1.069.81 1.878 1.895 1.88m.023 6.389c-1.088-.007-1.907.787-1.918 1.86a1.867 1.867 0 0 0 1.878 1.909c1.073.004 1.91-.81 1.918-1.868.01-1.069-.806-1.895-1.878-1.901m-1.918-3.19c-.003-1.068.818-1.886 1.894-1.887 1.075 0 1.902.817 1.902 1.882.001 1.066-.819 1.88-1.896 1.882-1.08.001-1.896-.806-1.9-1.877' id='a'/%3E%3C/defs%3E%3Cg transform='translate(0 -.5)' fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 .5h24v24H0z'/%3E%3Cmask id='b' fill='%23C6CAD1'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23C6CAD1' xlink:href='%23a'/%3E%3Cpath fill='%23C6CAD1' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 .5h24v24H0z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--google-ai.tensorsite-content__subtitle-icon span::after{top:-3px}.tensorsite-icon--group span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='22' height='14' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V18c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-1.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05.02.01.03.03.04.04 1.14.83 1.93 1.94 1.93 3.41V18c0 .35-.07.69-.18 1H22c.55 0 1-.45 1-1v-1.5c0-2.33-4.67-3.5-7-3.5z' id='a'/%3E%3C/defs%3E%3Cg stroke-width='0' fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-1 -5)'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-1-5h24v24H-1z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--internal span::before{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M11.7 5.3l-5-5c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L8.6 5H1c-.6 0-1 .4-1 1s.4 1 1 1h7.6l-3.3 3.3c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0l5-5c.4-.4.4-1 0-1.4z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(2 2)'%3E%3Cmask id='b' fill='%23ff6f00'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ff6f00' xlink:href='%23a'/%3E%3Cpath fill='%23ff6f00' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 0h12v12H0z'/%3E%3C/g%3E%3Cpath fill='none' d='M2 2h12v12H2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--internal span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M11.7 5.3l-5-5c-.4-.4-1-.4-1.4 0-.4.4-.4 1 0 1.4L8.6 5H1c-.6 0-1 .4-1 1s.4 1 1 1h7.6l-3.3 3.3c-.4.4-.4 1 0 1.4.4.4 1 .4 1.4 0l5-5c.4-.4.4-1 0-1.4z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(2 2)'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 0h12v12H0z'/%3E%3C/g%3E%3Cpath fill='none' d='M2 2h12v12H2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--mailbox span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='20' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M18 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm-.4 4.25l-6.54 4.09c-.65.41-1.47.41-2.12 0L2.4 4.25a.85.85 0 1 1 .9-1.44L10 7l6.7-4.19a.85.85 0 1 1 .9 1.44z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M-2-4h24v24H-2z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--math span::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.75 7.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0m.75 2.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m2-1.5h-4a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1M4.444 7.556a.499.499 0 0 0-.707 0L2.5 8.793 1.263 7.556a.499.499 0 0 0-.707 0 .499.499 0 0 0 0 .707L1.793 9.5.556 10.737a.499.499 0 0 0 0 .707.499.499 0 0 0 .707 0L2.5 10.207l1.237 1.237a.499.499 0 0 0 .707 0 .499.499 0 0 0 0-.707L3.207 9.5l1.237-1.237a.499.499 0 0 0 0-.707M7.5 3h4a.5.5 0 0 0 0-1h-4a.5.5 0 0 0 0 1M5 2.5a.5.5 0 0 1-.5.5H3v1.5a.5.5 0 0 1-1 0V3H.5a.5.5 0 0 1 0-1H2V.5a.5.5 0 0 1 1 0V2h1.5a.5.5 0 0 1 .5.5' fill='%23425066' fill-rule='evenodd'/%3E%3C/svg%3E")}.tensorsite-icon--math span::after{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.75 7.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0m.75 2.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5m2-1.5h-4a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1M4.444 7.556a.499.499 0 0 0-.707 0L2.5 8.793 1.263 7.556a.499.499 0 0 0-.707 0 .499.499 0 0 0 0 .707L1.793 9.5.556 10.737a.499.499 0 0 0 0 .707.499.499 0 0 0 .707 0L2.5 10.207l1.237 1.237a.499.499 0 0 0 .707 0 .499.499 0 0 0 0-.707L3.207 9.5l1.237-1.237a.499.499 0 0 0 0-.707M7.5 3h4a.5.5 0 0 0 0-1h-4a.5.5 0 0 0 0 1M5 2.5a.5.5 0 0 1-.5.5H3v1.5a.5.5 0 0 1-1 0V3H.5a.5.5 0 0 1 0-1H2V.5a.5.5 0 0 1 1 0V2h1.5a.5.5 0 0 1 .5.5' fill='%23ffffff%0A' fill-rule='evenodd'/%3E%3C/svg%3E")}.tensorsite-icon--blog span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpolygon points='0 0 24 0 24 24 0 24'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' d='M21,11.01 L3,11 L3,13 L21,13 L21,11.01 Z M3,16 L15,16 L15,18 L3,18 L3,16 Z M21,6 L3,6 L3,8.01 L21,8 L21,6 Z'/%3E%3C/g%3E%3C/svg%3E%0A")}.tensorsite-icon--next span::before{background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.418 7.01h11.17l-4.88-4.88c-.39-.39-.39-1.03 0-1.42a.996.996 0 0 1 1.41 0l6.59 6.59c.39.39.39 1.02 0 1.41l-6.59 6.59a.996.996 0 1 1-1.41-1.41l4.88-4.88H1.417c-.55 0-1-.45-1-1s.45-1 1-1z' fill='%23ff6f00' fill-rule='nonzero'/%3E%3C/svg%3E")}.tensorsite-icon--next span::after{background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.418 7.01h11.17l-4.88-4.88c-.39-.39-.39-1.03 0-1.42a.996.996 0 0 1 1.41 0l6.59 6.59c.39.39.39 1.02 0 1.41l-6.59 6.59a.996.996 0 1 1-1.41-1.41l4.88-4.88H1.417c-.55 0-1-.45-1-1s.45-1 1-1z' fill='%23425066' fill-rule='nonzero'/%3E%3C/svg%3E")}.tensorsite-icon--newsletter::before{background:center/contain no-repeat url("data:image/svg+xml;utf8,%3Csvg width='20' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M18 0H2C.9 0 0 .9 0 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm-.4 4.25l-6.54 4.09c-.65.41-1.47.41-2.12 0L2.4 4.25a.85.85 0 1 1 .9-1.44L10 7l6.7-4.19a.85.85 0 1 1 .9 1.44z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23ff6f00'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ff6f00' fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23ff6f00' fill-rule='nonzero' mask='url(%23b)' d='M-2-4h24v24H-2z'/%3E%3C/g%3E%3C/svg%3E");content:'\00a0';display:inline-block;height:20px;margin-right:7px;width:20px}.tensorsite-icon--previous span::before{background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M15 7H3.83l4.88-4.88c.39-.39.39-1.03 0-1.42A.996.996 0 0 0 7.3.7L.71 7.29a.996.996 0 0 0 0 1.41l6.59 6.59a.996.996 0 1 0 1.41-1.41L3.83 9H15c.55 0 1-.45 1-1s-.45-1-1-1z' id='a'/%3E%3C/defs%3E%3Cuse fill='%23ff6f00' transform='matrix(1 0 0 -1 -.417 15.99)' xlink:href='%23a' fill-rule='evenodd'/%3E%3C/svg%3E")}.tensorsite-icon--previous span::after{background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M15 7H3.83l4.88-4.88c.39-.39.39-1.03 0-1.42A.996.996 0 0 0 7.3.7L.71 7.29a.996.996 0 0 0 0 1.41l6.59 6.59a.996.996 0 1 0 1.41-1.41L3.83 9H15c.55 0 1-.45 1-1s-.45-1-1-1z' id='a'/%3E%3C/defs%3E%3Cuse fill='%23425066' transform='matrix(1 0 0 -1 -.417 15.99)' xlink:href='%23a' fill-rule='evenodd'/%3E%3C/svg%3E")}.tensorsite-icon--product-hub span::after{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 385.34 385.34' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3ClinearGradient id='a' gradientTransform='matrix(1 0 0 -1 -107.33 494.67)' gradientUnits='userSpaceOnUse' x1='144.09' x2='431.73' y1='302' y2='302'%3E%3Cstop offset='0' stop-color='%23425066'/%3E%3Cstop offset='1' stop-color='%23425066'/%3E%3C/linearGradient%3E%3Ccircle cx='192.67' cy='192.67' fill='url(/web/20210414163336im_/https://www.tensorflow.org/%23a)' r='192.67'/%3E%3Cg fill='%23fff'%3E%3Cpath d='m285.6 234.34-40.94-23.64-10.09 17.48 41.2 23.78v19.6l27.33 15.78 27.32-15.78v-31.55l-27.32-15.78z'/%3E%3Cpath d='m203.39 247.18h-20.18v46.51l-17.24 9.95v31.55l27.33 15.78 27.33-15.78v-31.55l-17.24-9.95z'/%3E%3Cpath d='m101.53 233.96-17.65-10.19-27.33 15.78v31.55l27.33 15.77 27.33-15.77v-19.42l40.74-23.53-10.09-17.47z'/%3E%3Cpath d='m220.61 51.01v31.56l-17.2 9.99v40.74l-10.13-5.85-10.07 5.78v-40.67l-17.2-9.99v-31.56l27.27-15.77z'/%3E%3Cpath d='m149.48 165.6-5.85 10.06-16.32-9.45-25.7-14.83-17.14 9.93-27.33-15.77v-31.56l27.33-15.77 27.34 15.77v20l23.6 13.6 11.42 6.66-8.5 4.9z'/%3E%3Cpath d='m330.44 114.12v31.55l-27.34 15.78-17.82-10.27-26.11 15.1h-.07l-16.18 9.38-5.85-10.06-.14-.28 11.02-6.32-8.3-4.76 11.43-6.66 24.68-14.22v-19.24l27.34-15.78z'/%3E%3Cpath d='m358.41 254.91-47.67-27.48-10.2-5.91-10 5.78-47.81 27.61-8.09 4.69v76.09l12.11 7 43.79 25.31 10 5.78 10.2-5.91 43.65-25.16 12.11-7v-76.11zm-14.15 17.75-43.72 25.22v.28l-43.73-25.23-11.15-6.46 8.5-4.9 36.38-21 10.07-5.78 10.13 5.85 36.26 20.93 8.3 4.76z' transform='translate(-107.33 -107.33)'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--phone::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-2-2h16v16H-2z'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' d='M2.4133 5.1933C3.3733 7.08 4.92 8.62 6.8067 9.5867L8.2733 8.12c.18-.18.4467-.24.68-.16.7467.2467 1.5534.38 2.38.38.3667 0 .6667.3.6667.6667v2.3266c0 .3667-.3.6667-.6667.6667C5.0733 12 0 6.9267 0 .6667 0 .3.3 0 .6667 0H3c.3667 0 .6667.3.6667.6667 0 .8333.1333 1.6333.38 2.38.0733.2333.02.4933-.1667.68L2.4133 5.1933z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--puzzle-build::before{background-image:url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 36h36V0H0z'/%3E%3Cpath d='M34.935 18.52a1.98 1.98 0 0 1-1.337 1.39 1.979 1.979 0 0 1-1.796-.32.5.5 0 0 0-.802.398V30.5a.5.5 0 0 1-.5.5h-20A5.506 5.506 0 0 1 5 25.5v-20c0-.276.224-.5.5-.5h9.677a3.021 3.021 0 0 0-.046 1.883 2.999 2.999 0 0 0 2.108 2.023 3.026 3.026 0 0 0 2.607-.542A2.982 2.982 0 0 0 20.826 5H30.5a.5.5 0 0 1 .5.5v10.513c0 .19.108.363.277.447.17.085.373.067.524-.049.866-.656 2.128-.469 2.776.358.382.49.513 1.128.358 1.752zm.43-2.366c-.785-1.005-2.181-1.406-3.366-.98V5.5c0-.826-.671-1.5-1.5-1.5H19.99a.503.503 0 0 0-.45.278.504.504 0 0 0 .05.524c.27.356.41.77.41 1.199 0 .62-.28 1.194-.768 1.577a2.02 2.02 0 0 1-1.75.359 1.978 1.978 0 0 1-1.392-1.338 1.976 1.976 0 0 1 .322-1.796.497.497 0 0 0 .047-.524.499.499 0 0 0-.446-.278H5.5C4.673 4 4 4.672 4 5.5v20c0 3.584 2.915 6.5 6.5 6.5h20a1.5 1.5 0 0 0 1.5-1.5v-9.677a3.028 3.028 0 0 0 1.883.046 2.997 2.997 0 0 0 2.023-2.108 3.022 3.022 0 0 0-.541-2.607zM16.998 18h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm3-2h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm-1 6h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm-1 6h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm-9 2h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm3 2h1v-1h-1v1zm1-2h-1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1z' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--puzzle-code::before{background-image:url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 36h36V0H0z'/%3E%3Cpath d='M27.094 17.24a2.996 2.996 0 0 1 2.022-2.109 2.983 2.983 0 0 1 1.884.043V5.5a.5.5 0 0 0-.5-.5h-20A5.506 5.506 0 0 0 5 10.5v20a.5.5 0 0 0 .5.5h10.511a.5.5 0 0 1 .4.802 1.97 1.97 0 0 0-.32 1.796 1.973 1.973 0 0 0 1.39 1.337 2.026 2.026 0 0 0 1.75-.359c.488-.382.77-.957.77-1.576 0-.429-.143-.844-.41-1.198a.5.5 0 0 1 .398-.802H30.5a.5.5 0 0 0 .5-.5v-9.675c-1.18.427-2.579.026-3.364-.979a3.02 3.02 0 0 1-.542-2.607zm.971.24a2.028 2.028 0 0 0 .358 1.75c.647.83 1.91 1.016 2.775.36a.5.5 0 0 1 .802.398V30.5c0 .827-.673 1.5-1.5 1.5h-9.676a2.987 2.987 0 0 1-.977 3.364 2.993 2.993 0 0 1-1.85.635c-.252 0-.506-.03-.758-.093A2.992 2.992 0 0 1 15.177 32H5.5c-.827 0-1.5-.673-1.5-1.5v-20C4 6.916 6.916 4 10.5 4h20c.827 0 1.5.673 1.5 1.5v10.511a.5.5 0 0 1-.802.4 1.979 1.979 0 0 0-1.797-.32 1.974 1.974 0 0 0-1.336 1.388zm-8.19-4.312a.5.5 0 0 0-.749.664L22.831 18l-3.705 4.168a.5.5 0 1 0 .748.664l4-4.5a.5.5 0 0 0 0-.664l-4-4.5zm-3 .664L13.168 18l3.705 4.168a.501.501 0 0 1-.748.664l-4-4.5a.5.5 0 0 1 0-.664l4-4.5a.5.5 0 1 1 .748.664z' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--puzzle-math::before{background-image:url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 36h36V0H0z'/%3E%3Cpath d='M31 10.5C31 7.468 28.532 5 25.5 5h-20c-.275 0-.5.225-.5.5v10.512a.499.499 0 0 1-.802.398 1.982 1.982 0 0 0-1.797-.32 1.979 1.979 0 0 0-1.337 1.389 2.031 2.031 0 0 0 .36 1.752c.646.829 1.909 1.014 2.774.359a.5.5 0 0 1 .802.398V30.5c0 .275.225.5.5.5h9.675a2.983 2.983 0 0 1 .978-3.364 3.02 3.02 0 0 1 2.608-.542 3 3 0 0 1 2.108 2.022A3.014 3.014 0 0 1 20.823 31H30.5c.275 0 .5-.225.5-.5v-20zm1 0v20c0 .827-.673 1.5-1.5 1.5H19.988a.499.499 0 0 1-.398-.802c.395-.522.51-1.161.32-1.797a1.978 1.978 0 0 0-1.39-1.337 2.025 2.025 0 0 0-1.75.36c-.49.382-.77.957-.77 1.576 0 .43.142.844.41 1.198a.501.501 0 0 1-.398.802H5.5c-.827 0-1.5-.673-1.5-1.5v-9.675c-1.184.427-2.58.027-3.364-.978a3.021 3.021 0 0 1-.542-2.608 2.996 2.996 0 0 1 2.022-2.108A3.021 3.021 0 0 1 4 15.177V5.5C4 4.673 4.673 4 5.5 4h20c3.584 0 6.5 2.916 6.5 6.5zm-9.75 9.25a.75.75 0 1 0-1.501 0 .75.75 0 0 0 1.5 0zM23.5 21h-4a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1zm0-7h-4a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1zm-7.056 5.556a.499.499 0 0 0-.707 0L14.5 20.793l-1.237-1.237a.499.499 0 0 0-.707 0 .499.499 0 0 0 0 .707l1.237 1.237-1.237 1.237a.499.499 0 0 0 0 .707.499.499 0 0 0 .707 0l1.237-1.237 1.237 1.237a.499.499 0 0 0 .707 0 .499.499 0 0 0 0-.707L15.207 21.5l1.237-1.237a.499.499 0 0 0 0-.707zM21.5 22.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5zm-4.5-8a.5.5 0 0 1-.5.5H15v1.5a.5.5 0 0 1-1 0V15h-1.5a.5.5 0 0 1 0-1H14v-1.5a.5.5 0 0 1 1 0V14h1.5a.5.5 0 0 1 .5.5z' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--puzzle-theory::before{background-image:url("data:image/svg+xml,%3Csvg width='36' height='36' viewBox='0 0 36 36' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 36h36V0H0z'/%3E%3Cpath d='M31 5.5c0-.275-.225-.5-.5-.5H19.988a.499.499 0 0 1-.398-.802c.395-.522.51-1.161.32-1.797a1.979 1.979 0 0 0-1.389-1.337 2.023 2.023 0 0 0-1.752.36A1.988 1.988 0 0 0 16 3c0 .43.142.844.41 1.198a.501.501 0 0 1-.398.802H5.5c-.275 0-.5.225-.5.5v9.675c1.183-.427 2.579-.027 3.364.978.574.734.772 1.684.542 2.608a3 3 0 0 1-2.022 2.108A3.02 3.02 0 0 1 5 20.823V30.5c0 .275.225.5.5.5h20c3.032 0 5.5-2.468 5.5-5.5v-20zm1 0v20c0 3.584-2.916 6.5-6.5 6.5h-20c-.827 0-1.5-.673-1.5-1.5V19.988a.499.499 0 0 1 .802-.398 1.978 1.978 0 0 0 1.797.32 1.978 1.978 0 0 0 1.337-1.39 2.028 2.028 0 0 0-.36-1.75c-.646-.83-1.909-1.016-2.774-.36A.501.501 0 0 1 4 16.012V5.5C4 4.673 4.673 4 5.5 4h9.675a2.981 2.981 0 0 1 .978-3.364 3.025 3.025 0 0 1 2.608-.542 2.996 2.996 0 0 1 2.108 2.022A3.014 3.014 0 0 1 20.823 4H30.5c.827 0 1.5.673 1.5 1.5zM23.5 13h-11a.5.5 0 0 0 0 1h11a.5.5 0 0 0 0-1zm0 6h-11a.5.5 0 0 0 0 1h11a.5.5 0 0 0 0-1zm-6 3h-5a.5.5 0 0 0 0 1h5a.5.5 0 0 0 0-1zm6.5-5.5a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1 0-1h11a.5.5 0 0 1 .5.5z' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--wechat span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' x='0' y='0' viewBox='0 0 24 24' xml:space='preserve'%3E%3Cg%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3Cg%3E%3Cpath fill='%23425066' d='M9.09 3.02c.01 0 .03.01.04.01.21.01.41.02.62.04.25.03.5.07.75.11.32.05.63.13.93.22.36.11.71.23 1.05.38.13.06.26.11.38.18.49.24.95.53 1.37.86.16.13.32.26.48.4.13.11.25.23.37.36.22.23.42.47.6.73.12.18.24.35.34.54.17.29.31.6.42.92.08.23.15.46.2.7v.03c-.06-.01-.12-.01-.18-.02-.29-.03-.58-.04-.87-.02-.49.02-.97.09-1.45.21-.4.1-.78.23-1.15.4-.51.23-.98.52-1.41.86-.25.2-.48.41-.69.65-.3.32-.56.67-.78 1.04-.2.33-.36.68-.49 1.05-.12.34-.21.69-.26 1.05-.03.2-.06.39-.06.58 0 .19-.02.38-.01.56.01.24.03.48.08.71.04.2.09.41.14.61 0 .02.01.03.01.05v.02c-.04 0-.07.01-.11.01-.07 0-.15.01-.22.01-.15 0-.3.01-.45.01-.22 0-.44-.01-.66-.04-.2-.02-.4-.05-.6-.08-.25-.04-.5-.09-.75-.14l-.6-.12c-.03-.01-.06 0-.09.01l-1.62.81c-.22.11-.45.22-.67.34-.11.06-.23.12-.34.17-.01.01-.02.01-.03.02h-.01v-.01-.02c.25-.77.51-1.53.76-2.3v-.01c-.08-.06-.16-.11-.23-.17-.17-.14-.34-.27-.51-.41-.25-.2-.48-.43-.71-.67-.27-.28-.51-.59-.72-.92-.1-.15-.19-.31-.28-.47-.16-.28-.28-.58-.38-.89-.09-.28-.16-.57-.2-.86-.02-.14-.03-.28-.05-.42-.01-.05-.01-.11-.02-.16 0-.01-.01-.02-.01-.03C1 9.74 1 9.57 1 9.4c.01 0 .02-.01.02-.02 0-.06.01-.12.01-.18.01-.12.02-.23.04-.35.04-.34.12-.68.23-1.01.13-.4.31-.79.52-1.15.28-.48.62-.92 1.01-1.31.14-.14.3-.28.45-.41.17-.14.34-.27.51-.4.29-.22.6-.41.92-.57.38-.2.76-.36 1.16-.5.36-.12.73-.22 1.1-.3.29-.06.59-.1.88-.13.2-.02.41-.03.62-.04.02 0 .03-.01.04-.01h.58zm2.57 3.32c-.3.01-.63.12-.88.4-.19.2-.26.44-.21.71.04.24.18.43.37.58.27.2.58.28.92.24.39-.05.66-.25.78-.63.07-.22.07-.45 0-.67-.07-.22-.2-.39-.4-.5-.16-.09-.34-.13-.58-.13zm-5.43 0c-.05.01-.14.01-.22.03-.29.06-.54.19-.72.42-.17.21-.23.46-.16.72.06.26.22.44.44.58.26.15.53.22.83.18.34-.03.6-.2.75-.51.13-.29.13-.58.01-.88-.05-.12-.12-.22-.22-.3-.19-.17-.42-.23-.71-.24z'/%3E%3Cpath fill='%23425066' d='M20.86 20.98c-.04-.03-.08-.05-.12-.08-.25-.14-.51-.28-.76-.42-.24-.13-.48-.26-.73-.4-.16-.09-.31-.17-.47-.26-.04-.02-.07-.02-.11-.01-.28.07-.55.14-.83.2-.28.06-.56.11-.84.14-.2.02-.4.03-.6.03-.21-.01-.43 0-.64-.02-.39-.03-.77-.08-1.14-.18-.22-.05-.43-.11-.65-.18-.23-.08-.46-.17-.68-.26-.26-.11-.5-.24-.74-.39-.26-.16-.51-.33-.75-.53-.22-.18-.43-.38-.62-.59-.3-.32-.56-.68-.78-1.07-.2-.37-.36-.76-.47-1.17-.06-.24-.11-.51-.14-.79-.02-.22-.03-.44-.02-.66.02-.35.06-.7.15-1.04.08-.3.18-.58.3-.86.19-.41.43-.79.71-1.14.1-.12.2-.24.31-.35.13-.13.25-.26.39-.38.22-.2.45-.37.7-.53.26-.18.54-.33.82-.47.36-.17.74-.31 1.12-.42.36-.1.72-.17 1.08-.22.14-.02.28-.03.42-.04.13-.01.25-.01.38-.02.09 0 .18-.01.27-.01l.54.03c.32.02.63.07.93.13.28.06.56.13.83.23.27.09.54.2.8.33.45.21.87.47 1.26.77.16.12.3.25.45.38.08.07.15.14.22.21.19.19.36.4.52.61.17.23.33.48.46.74.19.37.34.75.43 1.15.05.22.1.44.11.67 0 .01.01.02.01.03v.77c0 .01-.01.02-.01.03-.01.25-.07.49-.13.73-.1.37-.25.71-.44 1.04-.16.28-.34.55-.54.81-.16.2-.32.39-.5.57-.14.14-.28.27-.42.4l-.39.33c-.09.07-.18.14-.27.22.01.03.01.05.02.08.03.11.07.22.1.33l.24.81c.07.24.15.49.22.73.01-.01 0-.01 0-.01zM14.29 12c-.11 0-.2.02-.28.05-.17.07-.3.18-.4.33-.11.17-.16.35-.11.54.08.28.26.47.53.58.12.05.24.05.36.03.29-.04.53-.15.7-.39.13-.18.16-.39.08-.6-.06-.14-.15-.26-.27-.35-.18-.13-.4-.18-.61-.19zm4.31 1.55c.05-.01.15-.02.25-.05.23-.06.42-.19.55-.4.08-.13.11-.27.09-.42-.04-.25-.2-.42-.41-.55-.14-.08-.3-.12-.46-.14-.13-.01-.25.01-.37.07-.18.09-.31.22-.4.38-.09.15-.11.32-.06.49.05.18.15.31.29.43.13.12.29.19.52.19z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--share span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='24' height='24' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M18 19H6c-.55 0-1-.45-1-1V6c0-.55.45-1 1-1h5c.55 0 1-.45 1-1s-.45-1-1-1H5a2 2 0 0 0-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-6c0-.55-.45-1-1-1s-1 .45-1 1v5c0 .55-.45 1-1 1zM14 4c0 .55.45 1 1 1h2.59l-9.13 9.13a.996.996 0 1 0 1.41 1.41L19 6.41V9c0 .55.45 1 1 1s1-.45 1-1V4c0-.55-.45-1-1-1h-5c-.55 0-1 .45-1 1z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0 0h24v24H0z'/%3E%3Cpath d='M0 0h24v24H0z'/%3E%3C/g%3E%3C/svg%3E%0A")}.tensorsite-icon--stackoverflow span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='24' height='24' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M6.715 14.673l10.154 2.167.43-2.085L7.145 12.59l-.43 2.084zm1.343-4.937l9.402 4.47.86-1.92L8.918 7.79l-.86 1.947zm2.606-4.717l7.978 6.774 1.316-1.618-7.978-6.774-1.316 1.618zM15.82 0l-1.665 1.262 6.178 8.502L22 8.502 15.821 0zM6.5 19.5v-2.112h10.37V19.5H6.5zm12.395 2.382V15.5H21V24H2v-8.5h2.105v6.382h14.79z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg transform='translate(-2)'%3E%3Cmask id='b' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3Cpath d='M-2 0h24v24H-2z'/%3E%3C/g%3E%3C/svg%3E%0A")}.tensorsite-icon--theory span::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M.5 11h5a.5.5 0 0 0 0-1h-5a.5.5 0 0 0 0 1m0-3h11a.5.5 0 0 0 0-1H.5a.5.5 0 0 0 0 1m0-3h11a.5.5 0 0 0 0-1H.5a.5.5 0 0 0 0 1M0 1.5A.5.5 0 0 1 .5 1h11a.5.5 0 0 1 0 1H.5a.5.5 0 0 1-.5-.5' fill='%23425066'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--theory span::after{background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M0 12h12V0H0z'/%3E%3Cpath d='M.5 11h5a.5.5 0 0 0 0-1h-5a.5.5 0 0 0 0 1m0-3h11a.5.5 0 0 0 0-1H.5a.5.5 0 0 0 0 1m0-3h11a.5.5 0 0 0 0-1H.5a.5.5 0 0 0 0 1M0 1.5A.5.5 0 0 1 .5 1h11a.5.5 0 0 1 0 1H.5a.5.5 0 0 1-.5-.5' fill='%23ffffff%0A'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--twitter span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='22' height='18' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M22.208 3.333a8.848 8.848 0 0 1-2.843 1.1A4.433 4.433 0 0 0 16.099 3c-2.47 0-4.473 2.035-4.473 4.544 0 .356.039.702.115 1.035-3.718-.19-7.015-1.997-9.223-4.75a4.592 4.592 0 0 0-.606 2.288 4.56 4.56 0 0 0 1.991 3.781 4.425 4.425 0 0 1-2.028-.566v.055c0 2.203 1.543 4.04 3.591 4.456a4.401 4.401 0 0 1-2.021.08c.57 1.804 2.221 3.118 4.18 3.154a8.89 8.89 0 0 1-5.558 1.945c-.36 0-.718-.02-1.067-.062A12.542 12.542 0 0 0 7.86 21c8.23 0 12.73-6.923 12.73-12.928 0-.198-.004-.395-.011-.59a9.127 9.127 0 0 0 2.23-2.351 8.83 8.83 0 0 1-2.569.715 4.542 4.542 0 0 0 1.968-2.513' id='a'/%3E%3C/defs%3E%3Cg transform='translate(-1 -3)' fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(/web/20210414163336im_/https://www.tensorflow.org/%23b)' d='M0 0h24v24H0z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--website::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M-1-1h16v16H-1z'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' d='M6.9933.3333C3.3133.3333.3333 3.32.3333 7c0 3.68 2.98 6.6667 6.66 6.6667 3.6867 0 6.6734-2.9867 6.6734-6.6667 0-3.68-2.9867-6.6667-6.6734-6.6667zm4.62 4H9.6467C9.4333 3.5 9.1267 2.7 8.7267 1.96c1.2266.42 2.2466 1.2733 2.8866 2.3733zM7 1.6933c.5533.8.9867 1.6867 1.2733 2.64H5.7267c.2866-.9533.72-1.84 1.2733-2.64zm-5.16 6.64C1.7333 7.9067 1.6667 7.46 1.6667 7c0-.46.0666-.9067.1733-1.3333h2.2533C4.04 6.1067 4 6.5467 4 7c0 .4533.04.8933.0933 1.3333H1.84zm.5467 1.3334h1.9666c.2134.8333.52 1.6333.92 2.3733a5.3245 5.3245 0 0 1-2.8866-2.3733zm1.9666-5.3334H2.3867A5.3245 5.3245 0 0 1 5.2733 1.96c-.4.74-.7066 1.54-.92 2.3733zM7 12.3067c-.5533-.8-.9867-1.6867-1.2733-2.64h2.5466c-.2866.9533-.72 1.84-1.2733 2.64zm1.56-3.9734H5.44c-.06-.44-.1067-.88-.1067-1.3333 0-.4533.0467-.9.1067-1.3333h3.12c.06.4333.1067.88.1067 1.3333 0 .4533-.0467.8933-.1067 1.3333zm.1667 3.7067c.4-.74.7066-1.54.92-2.3733h1.9666c-.64 1.1-1.66 1.9533-2.8866 2.3733zm1.18-3.7067C9.96 7.8933 10 7.4533 10 7c0-.4533-.04-.8933-.0933-1.3333H12.16c.1067.4266.1733.8733.1733 1.3333 0 .46-.0666.9067-.1733 1.3333H9.9067z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--video span::before{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M6.8 4.1l4.7 3.5c.3.2.3.6 0 .8l-4.7 3.5c-.3.3-.8 0-.8-.4v-7c0-.4.5-.7.8-.4zM8 0c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm0 14c3.3 0 6-2.7 6-6s-2.7-6-6-6-6 2.7-6 6 2.7 6 6 6z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23ff6f00'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23ff6f00' xlink:href='%23a'/%3E%3Cpath fill='%23ff6f00' fill-rule='nonzero' mask='url(%23b)' d='M0 0h16v16H0z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--video span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M6.8 4.1l4.7 3.5c.3.2.3.6 0 .8l-4.7 3.5c-.3.3-.8 0-.8-.4v-7c0-.4.5-.7.8-.4zM8 0c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm0 14c3.3 0 6-2.7 6-6s-2.7-6-6-6-6 2.7-6 6 2.7 6 6 6z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0 0h16v16H0z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--youku span::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='%23425066' fill-rule='evenodd'%3E%3Cpath d='M12,24 C5.372583,24 0,18.627417 0,12 C0,5.372583 5.372583,0 12,0 C18.627417,0 24,5.372583 24,12 C24,18.627417 18.627417,24 12,24 Z M12,20.25 C16.5563492,20.25 20.25,16.5563492 20.25,12 C20.25,7.44365081 16.5563492,3.75 12,3.75 C7.44365081,3.75 3.75,7.44365081 3.75,12 C3.75,16.5563492 7.44365081,20.25 12,20.25 Z'/%3E%3Cpath d='M16.6557974,13.689665 L10.8450403,17.6090702 C9.98654383,18.1881334 8.82117141,17.9616079 8.2421082,17.1031114 C7.66304499,16.2446149 7.88957044,15.0792425 8.74806695,14.5001793 L12.3626201,12.0621324 L8.76409468,9.6348964 C7.90559817,9.05583318 7.67907272,7.89046077 8.25813593,7.03196425 C8.83719914,6.17346774 10.0025716,5.94694229 10.8610681,6.5260055 L16.7679608,10.5102549 C17.6264573,11.0893181 17.8529827,12.2546906 17.2739195,13.1131871 C17.1086958,13.3581413 16.8957391,13.551645 16.6557974,13.689665 Z'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-icon--youtube span::after{background-image:url("data:image/svg+xml;utf8,%3Csvg width='24' height='18' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cdefs%3E%3Cpath d='M23.5 3.14A3 3 0 0 0 21.38 1C19.51.5 12 .5 12 .5S4.49.5 2.62 1A3 3 0 0 0 .5 3.14 31.668 31.668 0 0 0 0 8.95c-.011 1.95.156 3.899.5 5.82a3 3 0 0 0 2.12 2.13c1.87.51 9.38.51 9.38.51s7.51 0 9.38-.51a3 3 0 0 0 2.12-2.13c.344-1.921.511-3.87.5-5.82a31.668 31.668 0 0 0-.5-5.81zM9.55 12.5V5.39l6.27 3.56-6.27 3.55z' id='a'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg%3E%3Cmask id='b' fill='%23425066'%3E%3Cuse xlink:href='%23a'/%3E%3C/mask%3E%3Cuse fill='%23425066' fill-rule='nonzero' xlink:href='%23a'/%3E%3Cpath fill='%23425066' fill-rule='nonzero' mask='url(%23b)' d='M0-3h24v24H0z'/%3E%3C/g%3E%3Cpath d='M0-3h24v24H0z'/%3E%3C/g%3E%3C/svg%3E");position:relative;top:3px}body{font-family:"Roboto",sans-serif;font-size:16px;line-height:26px;color:#616161;-webkit-font-smoothing:antialiased;margin:0}h1{font-family:"Google Sans",sans-serif;font-size:34px;font-weight:500;line-height:44px;margin:0}h2{font-family:"Google Sans",sans-serif;font-size:30px;font-weight:700;line-height:40px;margin:0}h3{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px;margin:0}h4{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;margin:0}h5{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px;margin:0}h6{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:22px;margin:0}.hidden-text{height:1px;overflow:hidden;pointer-events:none;position:absolute;top:-10px;width:1px}img,video{border:0;height:auto;max-width:100%}.wrapper{overflow:hidden}.tensorsite-container{margin:80px auto;max-width:1420px;padding:0 40px;width:100%}@media only screen and (max-width: 767px){.tensorsite-container{margin:50px auto;padding:0 20px}}.tensorsite-container--no-margin-top{margin-top:0}.tensorsite-container--narrow{max-width:1160px}.tensorsite-container--narrower{max-width:860px}body[type="marketing"][theme="tensorflow-theme"][layout="full"] .devsite-main-content{max-width:none;padding:0}body[type="marketing"][theme="tensorflow-theme"][layout="full"] .devsite-banner{margin-bottom:0;margin-top:0}body[devsite-framebox]{margin:0;overflow:hidden}body[devsite-framebox] .tensorsite-container{margin:0 auto}.devsite-dialog:not([open]){display:none}.tensorsite-block{display:flex;flex-basis:calc(100% / 3 - 30px);flex-direction:column;flex-grow:0;flex-shrink:1;margin:15px}.tensorsite-block:not(.tensorsite-block--code-block) .tensorsite-content{padding-bottom:0}.tensorsite-block .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px}.tensorsite-block .tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:16px;line-height:26px}.tensorsite-block .tensorsite-content__description p:last-of-type{margin-bottom:0}.tensorsite-block__image-wrapper{margin:auto;position:relative;width:30%}.tensorsite-block__image{height:auto;max-width:100%;width:auto}@media only screen and (min-width: 768px){.tensorsite-block__image:focus{outline:2px solid #425066;outline-offset:-2px}}.tensorsite-block--action .tensorsite-content__subtitle{padding:0}.tensorsite-block--plain,.tensorsite-block--plain-links{margin:15px;text-align:center}@media only screen and (max-width: 1000px){.tensorsite-block--plain,.tensorsite-block--plain-links{margin-bottom:20px;margin-top:20px}}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-block--plain,.tensorsite-block--plain-links{display:block}}.tensorsite-block--plain .tensorsite-content__cta,.tensorsite-block--plain-links .tensorsite-content__cta{align-self:center}.tensorsite-block--plain .tensorsite-content__cta-wrapper a,.tensorsite-block--plain-links .tensorsite-content__cta-wrapper a{align-self:center}.tensorsite-block--plain-links .tensorsite-content{padding-top:0}.tensorsite-block--code-block{overflow:hidden}.tensorsite-block--code-block .tensorsite-content{text-align:center}.tensorsite-block--code-block .tensorsite-content__description{flex-grow:0}.tensorsite-block--code-block .devsite-landing-row-item-code{flex-grow:1}.tensorsite-block--code-block .colab-callout-footer>a:focus{box-shadow:0 0 0 2px #fff}.tensorsite-block--code-block .colab-callout-footer>a>span{font-size:12px}.tensorsite-block--code-block .colab-callout-footer .button{background:linear-gradient(to right, #ff6f00, #ff9100);border:0;color:#fff;position:relative;z-index:1}.tensorsite-block--code-block .colab-callout-footer .button::before{background:#ff6f00;bottom:0;content:'';left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s;z-index:-1}.tensorsite-block--code-block .colab-callout-footer .button:focus{outline:1px dotted #fff;outline:5px auto #fff}.tensorsite-block--code-block .colab-callout-footer .button:hover::before{opacity:1}.tensorsite-block--code-block devsite-code,.tensorsite-block--code-block devsite-code pre{height:100%}@media only screen and (max-width: 767px){.tensorsite-block--code-block devsite-code,.tensorsite-block--code-block devsite-code pre{height:auto}}.tensorsite-breadcrumb-link{color:#616161;font-size:12px;padding:10px 6px;transition:color .2s linear}.tensorsite-breadcrumb-link:hover{color:#ff6f00}.tensorsite-breadcrumb-link:first-of-type{padding-left:0}.tensorsite-breadcrumb-arrow:last-of-type{display:none}.tensorsite-button-tab{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);margin:auto;overflow:hidden;z-index:1}@media only screen and (max-width: 767px){.tensorsite-button-tab{border-radius:0}}.tensorsite-button-tab ::-webkit-scrollbar{background:transparent;display:none}.tensorsite-button-tab input[name='tabs']{left:-10000px;opacity:0;position:absolute}.tensorsite-button-tab input[name='tabs']#tab-1:checked ~ .tensorsite-button-tab__image-wrapper:nth-of-type(1){display:flex}.tensorsite-button-tab input[name='tabs']#tab-1:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(1){color:#fff}.tensorsite-button-tab input[name='tabs']#tab-1:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(1)::after{background:#425066}.tensorsite-button-tab input[name='tabs']#tab-1:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__content__text:nth-of-type(2){display:flex}.tensorsite-button-tab input[name='tabs']#tab-2:checked ~ .tensorsite-button-tab__image-wrapper:nth-of-type(2){display:flex}.tensorsite-button-tab input[name='tabs']#tab-2:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(2){color:#fff}.tensorsite-button-tab input[name='tabs']#tab-2:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(2)::after{background:#425066}.tensorsite-button-tab input[name='tabs']#tab-2:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__content__text:nth-of-type(3){display:flex}.tensorsite-button-tab input[name='tabs']#tab-3:checked ~ .tensorsite-button-tab__image-wrapper:nth-of-type(3){display:flex}.tensorsite-button-tab input[name='tabs']#tab-3:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(3){color:#fff}.tensorsite-button-tab input[name='tabs']#tab-3:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__tabs label:nth-of-type(3)::after{background:#425066}.tensorsite-button-tab input[name='tabs']#tab-3:checked ~ .tensorsite-button-tab__content--info .tensorsite-button-tab__content__text:nth-of-type(4){display:flex}.tensorsite-button-tab .tensorsite-button-tab__content{display:flex;padding:40px}@media only screen and (max-width: 1279px){.tensorsite-button-tab .tensorsite-button-tab__content{flex-direction:column}}@media only screen and (max-width: 767px){.tensorsite-button-tab .tensorsite-button-tab__content{padding:20px}}.tensorsite-button-tab__image-wrapper{display:none;flex:1;justify-content:center}@media only screen and (max-width: 1279px){.tensorsite-button-tab__image-wrapper{margin-right:0}}.tensorsite-button-tab__content--info{display:flex;flex:2;flex-direction:column;margin-top:40px;padding-left:60px;position:relative}@media only screen and (max-width: 1279px){.tensorsite-button-tab__content--info{align-items:center;padding-left:0}.tensorsite-button-tab__content--info::after{z-index:-1}}.tensorsite-button-tab__content--info::after{border-left:1px solid #e3e5e8;bottom:0;content:'';height:115%;left:0;position:absolute;top:0;-webkit-transform:translateY(-12%);transform:translateY(-12%)}.tensorsite-button-tab__content__text{-webkit-animation-duration:0.5s;animation-duration:0.5s;-webkit-animation-name:tensorsite-button-tab__content-fade;animation-name:tensorsite-button-tab__content-fade;display:none}.tensorsite-button-tab__tabs{margin-bottom:32px}@media only screen and (max-width: 767px){.tensorsite-button-tab__tabs{align-items:center;display:flex;flex-direction:column}}.tensorsite-button-tab__tabs label{margin:6px 14px 6px 0}@-webkit-keyframes tensorsite-button-tab__content-fade{from{opacity:0}to{opacity:1}}@keyframes tensorsite-button-tab__content-fade{from{opacity:0}to{opacity:1}}.tensorsite-button,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:20px;background:none;border:none;border-radius:8px;box-shadow:0 0 20px rgba(0,0,0,0);color:#425066;display:inline-block;height:auto;outline:none;padding:13px 22px;position:relative;text-transform:none;transition:box-shadow .2s linear,background .2s linear,color .2s linear;z-index:1}.tensorsite-button:active,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a:active{box-shadow:none}.tensorsite-button:hover,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a:hover,.tensorsite-button:focus,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a:focus,.tensorsite-button.tensorsite-content__cta:hover,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a.tensorsite-content__cta:hover,.tensorsite-button.tensorsite-content__cta:focus,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a.tensorsite-content__cta:focus{color:#fff;outline:none}.tensorsite-button:hover::after,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a:hover::after,.tensorsite-button:focus::after,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a:focus::after,.tensorsite-button.tensorsite-content__cta:hover::after,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a.tensorsite-content__cta:hover::after,.tensorsite-button.tensorsite-content__cta:focus::after,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a.tensorsite-content__cta:focus::after{opacity:0}.tensorsite-button::before,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a::before{background:linear-gradient(to right, #ff6f00, #ff9100);border-radius:8px;content:'';height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.tensorsite-button::after,.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a::after{background:#fff;border-radius:7px;content:'';height:calc(100% - 4px);left:2px;opacity:1;position:absolute;top:2px;transition:.3s opacity linear;width:calc(100% - 4px);z-index:-1}.tensorsite-button--white-text{color:#fff}.tensorsite-button--white{color:#425066;padding:13px 22px}.tensorsite-button--white::before{background:#425066}.tensorsite-button--white::after{height:100%;left:0;top:0;width:100%}.tensorsite-button--gray::after{background:#f5f6f7}.tensorsite-button--dark-gray{color:#425066}.tensorsite-button--dark-gray:hover{color:#fff}.tensorsite-button--dark-gray::before{background:#425066}.tensorsite-button--dark-gray::after{background:#e3e5e8;height:100%;left:0;top:0;width:100%}button.tensorsite-play-button,a.tensorsite-play-button{background:#fff center/contain no-repeat;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'%3E%3ClinearGradient id='a' gradientUnits='userSpaceOnUse' x1='-427.9393' y1='229.2344' x2='-428.1819' y2='228.8326' gradientTransform='matrix(20 0 0 -30 8610 6917)'%3E%3Cstop offset='0' stop-color='%23ff9100'/%3E%3Cstop offset='1' stop-color='%23ff6f00'/%3E%3C/linearGradient%3E%3Cpath d='M41 63V33l20 15-20 15z' fill='url(/web/20210414163336im_/https://www.tensorflow.org/%23a)'/%3E%3C/svg%3E");border:0;border-radius:50%;bottom:0;box-shadow:0 0 20px rgba(0,0,0,0.08);height:96px;margin:auto;padding:0;top:0;transition:-webkit-transform .3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform .3s cubic-bezier(0.4, 0, 0.2, 1);width:96px}button.tensorsite-play-button:focus,button.tensorsite-play-button:hover,a.tensorsite-play-button:focus,a.tensorsite-play-button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.tensorsite-card{-webkit-backface-visibility:hidden;backface-visibility:hidden;background:linear-gradient(to right, #ff6f00, #ff9100);border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);display:flex;flex-basis:calc(100% / 3 - 30px);flex-direction:column;flex-grow:0;flex-shrink:1;margin:15px;max-width:calc(100% / 3 - 30px);position:relative;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);transition:box-shadow .2s linear,opacity .2s linear}.tensorsite-card::before{background:#fff;border-radius:10px;content:'';height:100%;left:0;pointer-events:none;position:absolute;top:0;transition:opacity .2s linear;width:100%}.tensorsite-card .tensorsite-content{border-radius:0 0 10px 10px;position:static}@media only screen and (max-width: 767px){.tensorsite-card .tensorsite-content{padding-left:30px;padding-right:30px}}.tensorsite-card .tensorsite-content--under-image::before{top:-1px}.tensorsite-card .tensorsite-content .tensorsite-content__subtitle,.tensorsite-card .tensorsite-content .tensorsite-content__description,.tensorsite-card .tensorsite-content .tensorsite-content__cta-wrapper,.tensorsite-card .tensorsite-content ul{position:relative}.tensorsite-card .tensorsite-content .tensorsite-content__cta-wrapper--shorter{padding-right:70px}.tensorsite-card .tensorsite-content__image-wrapper{border-bottom:solid 1px #dadada;border-radius:10px 10px 0 0;overflow:hidden;position:relative;transition:border-color .2s linear;z-index:1}.tensorsite-card .tensorsite-content__image-wrapper img{background-color:#fbfcfc;-webkit-transform:scale(1.01);transform:scale(1.01);transition:-webkit-transform .5s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform .5s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform .5s cubic-bezier(0.25, 0.1, 0.25, 1), -webkit-transform .5s cubic-bezier(0.25, 0.1, 0.25, 1);will-change:transform}.tensorsite-card .tensorsite-content__image-wrapper .tensorsite-content__image__play-button{bottom:0;left:0;margin:auto;overflow:visible;position:absolute;right:0;top:0}.tensorsite-card .tensorsite-price-tag__inner{transition:background-color .2s linear,color .2s linear}.tensorsite-card .tensorsite-content__categories{display:flex;flex-wrap:wrap;margin-bottom:-8px;margin-top:30px;padding-top:18px;position:relative;z-index:1}.tensorsite-card .tensorsite-content__categories::before{border-top:1px solid #dadada;content:'';left:-30px;position:absolute;top:0;width:calc(100% + 60px)}.tensorsite-card .tensorsite-content__categories .tensorsite-content__category{padding-right:18px}.tensorsite-card .tensorsite-content__categories .tensorsite-content__category:last-child{padding-right:0}.tensorsite-card .tensorsite-content__categories .tensorsite-content__category-text{font-size:12px;line-height:18px;color:#425066;padding-left:16px;position:relative;text-transform:capitalize;transition:color .2s linear}.tensorsite-card .tensorsite-content__categories .tensorsite-content__category-text::before,.tensorsite-card .tensorsite-content__categories .tensorsite-content__category-text::after{background-position:center center;background-repeat:no-repeat;bottom:0;content:'';height:12px;left:0;margin:auto;position:absolute;top:0;width:12px}.tensorsite-card .tensorsite-content__categories .tensorsite-content__category-text::before{transition:opacity .2s linear;z-index:1}.tensorsite-card .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;align-items:center;display:flex;justify-content:space-between;z-index:1}.tensorsite-card .tensorsite-content__title:before{bottom:0;content:'';left:0;position:absolute;right:0;top:0}.tensorsite-card .tensorsite-content__subtitle{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:18px}.tensorsite-card .tensorsite-content__subtitle--thin{font-family:"Roboto",sans-serif;font-weight:400}.tensorsite-card .tensorsite-content__description{font-size:14px;line-height:22px}.tensorsite-card .tensorsite-content__description strong:first-child:last-child{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px;color:#425066;display:inline-block;margin-top:8px;transition:color .2s linear}.tensorsite-card .tensorsite-content__cta{color:#425066;z-index:3}.tensorsite-card:hover:not(.no-link){box-shadow:0 0 64px rgba(0,0,0,0.22);cursor:pointer}.tensorsite-card.no-link .tensorsite-content__title::before{content:none}.tensorsite-card.font-size-body .tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:16px;line-height:26px}.tensorsite-card--double{flex-basis:calc(50% / 3 - 30px);flex-grow:0;flex-shrink:1;max-width:calc(50% / 3 - 30px)}.tensorsite-card__href{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:2}.tensorsite-card--hero .tensorsite-content__cta:hover{color:#425066}.tensorsite-card--hero-whitecta .tensorsite-content__cta{color:#fff}.tensorsite-card--hero-whitecta a span::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card--hero-whitecta .tensorsite-content__cta:hover{color:#fff}.tensorsite-card--hero-whitetext .tensorsite-content__title{color:#fff}.tensorsite-card--hero-bluegradient .tensorsite-content--under-image{background-image:linear-gradient(0deg, rgba(32,18,20,0) 0%, rgba(32,18,20,0) 45%, #5464b5 100%)}.tensorsite-card--hero-h3title .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}.tensorsite-card--hero .tensorsite-content__title{flex-grow:1}.tensorsite-card--hero .tensorsite-content__title::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card--hero .tensorsite-content__image-wrapper{border-bottom:none;border-radius:10px;height:100%;position:absolute;width:100%}.tensorsite-card--hero .tensorsite-content__image{height:100%;-o-object-fit:cover;object-fit:cover}.tensorsite-card--hero .tensorsite-content__image,.tensorsite-card--hero .tensorsite-content--under-image{border-radius:10px}.tensorsite-card--clip .tensorsite-content{background:transparent;margin-top:40%;padding-top:17%;position:static;z-index:1}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-card--clip .tensorsite-content{background-color:#fff;padding-top:20px}}.tensorsite-card--clip .tensorsite-content__clip-bg{padding-top:40%}.tensorsite-card--clip .tensorsite-content__clip-bg+.tensorsite-content__title{padding-top:7%}.tensorsite-card--clip .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px;max-width:81%}@media only screen and (max-width: 1000px){.tensorsite-card--clip .tensorsite-content__title{max-width:none}}@media only screen and (max-width: 850px){.tensorsite-card--clip .tensorsite-content__title{max-width:80%}}@media only screen and (max-width: 767px){.tensorsite-card--clip .tensorsite-content__title{max-width:60%}}@media only screen and (max-width: 480px){.tensorsite-card--clip .tensorsite-content__title{max-width:80%}}.tensorsite-card--clip .tensorsite-content__subtitle{color:#425066;font-weight:700;max-width:42%}.tensorsite-card--clip .tensorsite-content__image-wrapper{border-bottom:0;border-radius:10px;height:100%;position:absolute;width:100%}.tensorsite-card--horizontal{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}.tensorsite-card--horizontal .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}@media only screen and (min-width: 851px){.tensorsite-card--horizontal{flex-direction:row}.tensorsite-card--horizontal .tensorsite-content__image-wrapper,.tensorsite-card--horizontal .tensorsite-content--under-image{flex:1 0 50%;max-width:50%}.tensorsite-card--horizontal .tensorsite-content__image-wrapper{border-bottom:0;border-radius:10px 0 0 10px;border-right:1px solid #dadada}.tensorsite-card--horizontal .tensorsite-content__image{border-radius:10px 0 0 10px;height:100%;-o-object-fit:cover;object-fit:cover}}@media only screen and (min-width: 851px) and (-ms-high-contrast: none), only screen and (min-width: 851px) and (-ms-high-contrast: active){.tensorsite-card--horizontal .tensorsite-content__image-wrapper{display:flex;flex-direction:column;justify-content:center}.tensorsite-card--horizontal .tensorsite-content__image{height:auto;-o-object-fit:unset;object-fit:unset}}.tensorsite-card .tensorsite-content__cta-wrapper .tensorsite-content__cta-icon:hover span::before{opacity:0}.tensorsite-card .tensorsite-content__cta-wrapper .tensorsite-content__cta-icon:hover span::after{opacity:1}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover::before{opacity:0}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content a,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content div,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content strong{color:#fff}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content::before{opacity:1;transition:opacity .2s linear}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content ul a span::after,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__cta-wrapper .tensorsite-content__cta-icon span::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__title span::after,.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__subtitle span::after{-webkit-filter:grayscale(100%) invert(1) brightness(2);filter:grayscale(100%) invert(1) brightness(2)}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__tag{color:#fff}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__cta-wrapper .tensorsite-price-tag__inner{background-color:#fff;color:#ff6f00}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__cta-wrapper .tensorsite-price-tag__inner::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='24' viewBox='0 0 12 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M9.474 0H56a2 2 0 0 1 2 2v20a2 2 0 0 1-2 2H9.474a2 2 0 0 1-1.636-.85l-7.03-10a2 2 0 0 1 0-2.3l7.03-10A2 2 0 0 1 9.474 0z' fill='%23FFF'/%3E%3Ccircle fill='%23FF6F00' cx='10' cy='12' r='2'/%3E%3C/g%3E%3C/svg%3E")}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__categories .tensorsite-content__category-text{color:#fff}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__clip-bg::before{background:#ff6f00}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__clip-shape path{fill:#ff6f00}.tensorsite-card:not(.tensorsite-card--clip):not(.tensorsite-card--hero):not(.no-link):hover .tensorsite-content .tensorsite-content__category-text::before{opacity:0}html[dir='rtl'] .tensorsite-content__clip-shape{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.tensorsite-card:hover .tensorsite-content__image-wrapper{border-color:transparent}.tensorsite-card:hover .tensorsite-content__image-wrapper img{-webkit-transform:scale(1.03);transform:scale(1.03);transition:-webkit-transform 1s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform 1s cubic-bezier(0.25, 0.1, 0.25, 1);transition:transform 1s cubic-bezier(0.25, 0.1, 0.25, 1), -webkit-transform 1s cubic-bezier(0.25, 0.1, 0.25, 1)}.tensorsite-card--bnw img{-webkit-filter:grayscale(100%);filter:grayscale(100%)}.tensorsite-card--bnw:hover img{-webkit-filter:grayscale(0%);filter:grayscale(0%)}.tensorsite-card .tensorsite-content__title:hover ~ div.tensorsite-content__cta-wrapper .tensorsite-content__cta:first-child span::after,.tensorsite-card .tensorsite-card__href:hover ~ .tensorsite-content div.tensorsite-content__cta-wrapper .tensorsite-content__cta:first-child span::after{-webkit-transform:translateX(4px);transform:translateX(4px)}.tensorsite-card .tensorsite-content__title:hover ~ ul.tensorsite-content__cta-wrapper li:first-child .tensorsite-content__cta span::after{-webkit-transform:translateX(4px);transform:translateX(4px)}.tensorsite-card .tensorsite-content__title:focus::before{border-radius:10px;box-shadow:0 0 0 2px #425066}.tensorsite-card .tensorsite-card__href:focus ~ .tensorsite-content .tensorsite-content__title::before{border-radius:10px;box-shadow:0 0 0 2px #425066}.tensorsite-content{border-radius:10px;display:flex;flex-basis:auto;flex-direction:column;flex-grow:1;flex-shrink:1;overflow-wrap:break-word;padding:26px 30px;position:relative;word-wrap:break-word}@media only screen and (max-width: 767px){.tensorsite-content{padding-left:15px;padding-right:15px}}.tensorsite-content a:not(.tensorsite-content__button),.tensorsite-content div{transition:color .2s linear}.tensorsite-content ol,.tensorsite-content ul{padding-left:18px}.tensorsite-content ol li,.tensorsite-content ul li{margin:8px 0}.tensorsite-content ol li:last-of-type,.tensorsite-content ul li:last-of-type{margin-bottom:0}.tensorsite-content p a,.tensorsite-content-underline{border-bottom:1px solid #ff6f00;color:#616161;font-weight:inherit;transition:color .2s linear}.tensorsite-content p a:focus,.tensorsite-content-underline:focus{outline:2px solid #425066;outline-offset:-2px}.tensorsite-content p a:hover,.tensorsite-content-underline:hover{color:#ff6f00}.tensorsite-content p{margin:10px 0}.tensorsite-content p:first-child{margin-top:0}.tensorsite-content p:last-child{margin-bottom:0}.tensorsite-content ol+p,.tensorsite-content ul+p{margin-top:calc(1em + 10px)}.tensorsite-content__clip-bg{display:flex;flex-direction:column;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:-1}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-content__clip-bg{display:none}}.tensorsite-content__clip-bg::after{background:#fff;border-radius:0 0 10px 10px;content:'';display:block;flex:1 0 auto;margin-top:-2px;transition:background .2s linear;width:100%}.tensorsite-content__clip-shape{margin-left:-1px;width:102%}.tensorsite-content__clip-shape path{transition:fill .2s linear}.tensorsite-content__cta-wrapper{display:flex;flex-direction:column;line-height:1;margin-top:-4px}.tensorsite-content__cta-wrapper--abreast{display:block}.tensorsite-content__cta-wrapper--abreast .tensorsite-content__cta{margin-right:21px}.tensorsite-content__cta-wrapper .tensorsite-content__button{align-self:flex-start;margin-top:8px}.tensorsite-content__cta{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:20px;align-self:flex-start;color:#425066;display:inline-block;margin-top:8px;position:relative}.tensorsite-content__cta:focus{outline:2px solid #425066;outline-offset:-2px}.tensorsite-content__cta:hover{color:#ff6f00}.tensorsite-content__cta:hover span::after,.tensorsite-content__cta:hover span::before{-webkit-transform:translateX(4px);transform:translateX(4px)}.tensorsite-content__cta:hover span::after{opacity:0}.tensorsite-content__cta:hover span::before{opacity:1}.tensorsite-content__cta:last-child{margin-right:0}.tensorsite-content__cta--disabled,.tensorsite-content__cta--disabled:hover{color:#818181}.tensorsite-content__cta-image:focus,.tensorsite-content__cta-image:hover{outline:none;color:#ff6f00}.tensorsite-content__cta-image:focus span::after,.tensorsite-content__cta-image:focus span::before,.tensorsite-content__cta-image:hover span::after,.tensorsite-content__cta-image:hover span::before{-webkit-transform:translateX(4px);transform:translateX(4px)}.tensorsite-content__cta-image:focus span::after,.tensorsite-content__cta-image:hover span::after{opacity:0}.tensorsite-content__cta-image:focus span::before,.tensorsite-content__cta-image:hover span::before{opacity:1}.tensorsite-content__cta-image:focus:focus .cta-image,.tensorsite-content__cta-image:hover:focus .cta-image{box-shadow:0px 2px 12px rgba(66,80,102,0.24)}.tensorsite-content__cta-image:focus img,.tensorsite-content__cta-image:hover img{-webkit-filter:none;filter:none}.tensorsite-content__cta-icon span{margin-left:-3px;position:relative;white-space:nowrap}.tensorsite-content__cta-icon span::after,.tensorsite-content__cta-icon span::before{background-repeat:no-repeat;background-size:contain;content:'\00a0';display:inline-block;height:20px;margin-left:4px;transition:opacity .2s linear,-webkit-filter .2s linear,-webkit-transform .5s;transition:filter .2s linear,transform .5s,opacity .2s linear;transition:filter .2s linear,transform .5s,opacity .2s linear,-webkit-filter .2s linear,-webkit-transform .5s;vertical-align:text-bottom;width:20px}.tensorsite-content__cta-icon span::before{bottom:0;margin-left:7px;opacity:0;position:absolute;right:0}.tensorsite-content__cta-icon.tensorsite-icon--internal span::after,.tensorsite-content__cta-icon.tensorsite-icon--internal span::before,.tensorsite-content__cta-icon.tensorsite-icon--external span::after,.tensorsite-content__cta-icon.tensorsite-icon--external span::before,.tensorsite-content__cta-icon.tensorsite-icon--newsletter span::after,.tensorsite-content__cta-icon.tensorsite-icon--newsletter span::before,.tensorsite-content__cta-icon.tensorsite-icon--video span::after,.tensorsite-content__cta-icon.tensorsite-icon--video span::before{background-position:center;background-size:80%;margin-left:0}.tensorsite-content__cta.devsite-dialog-button:hover{cursor:pointer}.tensorsite-content__cta.tensorsite-content__button ~ *:not(.tensorsite-content__button){line-height:46px}.tensorsite-content__image-wrapper{position:relative}.tensorsite-content__image-wrapper .tensorsite-content__image__play-button{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;-webkit-transform:scale(0.8);transform:scale(0.8);transition:-webkit-transform .3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform .3s cubic-bezier(0.4, 0, 0.2, 1)}.tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:16px;line-height:26px;flex-basis:auto;flex-grow:1;flex-shrink:1;margin-bottom:8px}.tensorsite-content__description p a{font-weight:500}.tensorsite-content__description:last-child{margin-bottom:0}.tensorsite-content__image{border-radius:10px 10px 0 0;display:block;height:auto;width:100%}.tensorsite-content__subtitle{font-size:14px;line-height:22px;align-items:center;color:#425066;display:flex;margin-bottom:8px;position:relative}.tensorsite-content__subtitle-icon{margin-left:40px}.tensorsite-content__subtitle-icon span::after{background-repeat:no-repeat;background-size:contain;content:'';height:20px;left:-40px;position:absolute;top:0;transition:-webkit-filter .2s linear;transition:filter .2s linear;transition:filter .2s linear, -webkit-filter .2s linear;width:24px}.tensorsite-content__subtitle--under-title{margin-top:10px}.tensorsite-content__subtitle--bold{font-weight:700}.tensorsite-content__subtitle--gray{color:#818181;font-family:"Google Sans",sans-serif}.tensorsite-content__small-title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;margin-bottom:12px}.tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:30px;font-weight:700;line-height:40px;color:#425066;margin-bottom:12px}.tensorsite-content__title span{position:absolute;right:30px;top:26px}.tensorsite-content__title span::after{background-repeat:no-repeat;background-size:contain;content:'';height:24px;position:absolute;right:0;top:0;transition:-webkit-filter .2s linear;transition:filter .2s linear;transition:filter .2s linear, -webkit-filter .2s linear;width:24px}.tensorsite-content>.tensorsite-content__title:last-child{margin-bottom:0}.tensorsite-content__title.tensorsite-icon{padding-right:26px}.tensorsite-content__title--clip{-webkit-transform:translateY(-35px);transform:translateY(-35px)}.tensorsite-content__title--grow{flex-grow:1}.tensorsite-content__title--orange{color:#ff6f00}.tensorsite-content__title i{font-size:32px;margin-right:-6px}.tensorsite-content--under-image{border-radius:0 0 10px 10px}.tensorsite-content__title+.tensorsite-content__cta{margin-top:16px}.tensorsite-content__description--align-left{text-align:left}.tensorsite-content__tag{color:#818181}.tensorsite-expandable__section{margin-bottom:16px}.tensorsite-expandable__section:last-child{margin-bottom:0}.tensorsite-expandable__section input{display:none}.tensorsite-expandable__section input:checked ~ .tensorsite-expandable__content{max-height:1000px}.tensorsite-expandable__section input:checked ~ label::after{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.tensorsite-expandable__section label{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;background:#fff;border:1px #ccc solid;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);color:#425066;display:block;padding:20px 40px 18px 25px;position:relative}.tensorsite-expandable__section label::before,.tensorsite-expandable__section label::after{background:#425066;content:'';height:2px;position:absolute;right:25px;top:50%;transition:-webkit-transform .2s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .2s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform .2s cubic-bezier(0.4, 0, 0.2, 1);width:11px}.tensorsite-expandable__section label::after{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tensorsite-expandable__section .tensorsite-expandable__content{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(0.4, 0, 0.2, 1)}.tensorsite-expandable__section .tensorsite-expandable__content .tensorsite-content{padding:16px 25px}.tensorsite-expandable__section .tensorsite-expandable__content .tensorsite-content__description{font-size:14px;line-height:22px}a{color:#ff6f00;text-decoration:none}a:active,a:focus{text-decoration:none}.firesite-cta{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:20px}.tensorsite-video-modal{width:75%}.tensorsite-video-modal .devsite-dialog-contents{padding:0 0 56.25%;position:relative}.tensorsite-video-modal .devsite-dialog-contents iframe{height:100%;left:0;position:absolute;top:0;width:100%}.tensorsite-video-modal .devsite-dialog-buttons{display:none}.tensorsite-price-tag{position:absolute;right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.tensorsite-price-tag__inner{background-color:#425066;border-radius:0 4px 4px 0;color:#fff;font-weight:bold;margin-left:12px;padding:4px 10px;position:relative;transition:background-color .2s linear,color .2s linear}.tensorsite-price-tag__inner::before{background-image:url("data:image/svg+xml,%3Csvg width='12' height='24' viewBox='0 0 12 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M9.474 0H56a2 2 0 0 1 2 2v20a2 2 0 0 1-2 2H9.474a2 2 0 0 1-1.636-.85l-7.03-10a2 2 0 0 1 0-2.3l7.03-10A2 2 0 0 1 9.474 0z' fill='%23425066'/%3E%3Ccircle fill='%23FFF' cx='10' cy='12' r='2'/%3E%3C/g%3E%3C/svg%3E");content:"";height:100%;position:absolute;right:100%;top:0;transition:background-image .2s linear;width:12px}.tensorsite-profile-wrapper:not(:first-of-type){margin-top:30px}@media only screen and (min-width: 768px){.tensorsite-profile__info{align-items:center;display:flex}}.tensorsite-profile__image{border-radius:50%;max-width:110px;min-width:55px;width:20%}@media only screen and (min-width: 768px){.tensorsite-profile__image{padding-right:20px}}.tensorsite-profile__name{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px;color:#425066}.tensorsite-profile__name p{margin:0}.tensorsite-sidenote{background-color:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);padding:26px 35px}@media only screen and (max-width: 767px){.tensorsite-sidenote{padding:30px 30px}}.tensorsite-sidenote__header-content .tensorsite-content{padding:26px 15px}.tensorsite-sidenote__header-content .tensorsite-content .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-content{padding-top:26px}@media only screen and (max-width: 767px){.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:first-child .tensorsite-content{padding-top:0}}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-content{border-bottom:none;padding-bottom:26px}@media only screen and (max-width: 767px){.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child:last-child .tensorsite-content{padding-bottom:0}}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__large-title .tensorsite-content__title,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__large-title .tensorsite-list__title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__large-title .tensorsite-list__title{margin-bottom:16px}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__no-border .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__no-border .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child.tensorsite-sidenote__no-border .tensorsite-content{border-bottom:none}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content{border-bottom:1px solid #dadada;padding:39px 15px}@media only screen and (max-width: 767px){.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-list,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-profile,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content{padding:26px 0}}.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px}@media only screen and (max-width: 767px){.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content__cta-wrapper li,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content__cta-wrapper.tensorsite-content__cta-wrapper--abreast li{text-align:center}}@media only screen and (max-width: 767px){.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content__cta-wrapper li:last-child,.tensorsite-sidenote__sub-wrapper .tensorsite-sidenote__child .tensorsite-content__cta-wrapper.tensorsite-content__cta-wrapper--abreast li:last-child{margin-bottom:0}}.tensorsite-top-tab{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);margin:auto;overflow:hidden;z-index:1}@media only screen and (max-width: 767px){.tensorsite-top-tab{border-radius:0}}.tensorsite-top-tab ::-webkit-scrollbar{background:transparent;display:none}.tensorsite-top-tab input[name='tabs']{left:-10000px;opacity:0;position:absolute}.tensorsite-top-tab input[name='tabs']#tab-1:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(1){display:block}.tensorsite-top-tab input[name='tabs']#tab-1:checked ~ .tensorsite-top-tab__tabs label:nth-child(1){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-1:checked ~ .tensorsite-top-tab__tabs label:nth-child(1)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-1:checked ~ .tensorsite-top-tab__tabs label:nth-child(1){outline:2px solid #425066;outline-offset:-2px;outline-offset:-5px}.tensorsite-top-tab input[name='tabs']#tab-2:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(2){display:block}.tensorsite-top-tab input[name='tabs']#tab-2:checked ~ .tensorsite-top-tab__tabs label:nth-child(2){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-2:checked ~ .tensorsite-top-tab__tabs label:nth-child(2)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-2:checked ~ .tensorsite-top-tab__tabs label:nth-child(2){outline:2px solid #425066;outline-offset:-2px;outline-offset:-5px}.tensorsite-top-tab input[name='tabs']#tab-3:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(3){display:block}.tensorsite-top-tab input[name='tabs']#tab-3:checked ~ .tensorsite-top-tab__tabs label:nth-child(3){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-3:checked ~ .tensorsite-top-tab__tabs label:nth-child(3)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-3:checked ~ .tensorsite-top-tab__tabs label:nth-child(3){outline:2px solid #425066;outline-offset:-2px;outline-offset:-5px}.tensorsite-top-tab input[name='tabs']#tab-4:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(4){display:block}.tensorsite-top-tab input[name='tabs']#tab-4:checked ~ .tensorsite-top-tab__tabs label:nth-child(4){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-4:checked ~ .tensorsite-top-tab__tabs label:nth-child(4)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-4:checked ~ .tensorsite-top-tab__tabs label:nth-child(4){outline:2px solid #425066;outline-offset:-2px;outline-offset:-5px}.tensorsite-top-tab input[name='tabs']#tab-5:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(5){display:block}.tensorsite-top-tab input[name='tabs']#tab-5:checked ~ .tensorsite-top-tab__tabs label:nth-child(5){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-5:checked ~ .tensorsite-top-tab__tabs label:nth-child(5)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-5:checked ~ .tensorsite-top-tab__tabs label:nth-child(5){outline:2px solid #425066;outline-offset:-2px;outline-offset:-5px}.tensorsite-top-tab input[name='tabs']#tab-6:checked ~ .tensorsite-top-tab__contents .tensorsite-top-tab__content:nth-of-type(6){display:block}.tensorsite-top-tab input[name='tabs']#tab-6:checked ~ .tensorsite-top-tab__tabs label:nth-child(6){color:#293241}.tensorsite-top-tab input[name='tabs']#tab-6:checked ~ .tensorsite-top-tab__tabs label:nth-child(6)::after{width:calc(100% - 30px)}.tensorsite-top-tab input[name='tabs'].key-down-focus#tab-6:checked ~ .tensorsite-top-tab__tabs label:nth-child(6){outline:2px solid #425066;outline-offset:-2px;outline-offset:-5px}.tensorsite-top-tab .tensorsite-top-tab__tabs label::after{transition:width .3s ease}.tensorsite-top-tab .tensorsite-top-tab__content{-webkit-animation-duration:0.5s;animation-duration:0.5s;-webkit-animation-name:tensorsite-top-tab__content-fade;animation-name:tensorsite-top-tab__content-fade;display:none;padding:0 40px 40px 40px}.tensorsite-top-tab .tensorsite-top-tab__content a{border-bottom:1px solid #ff6f00;color:#616161;font-weight:500;transition:color .2s linear}.tensorsite-top-tab .tensorsite-top-tab__content a:hover{color:#ff6f00}@media only screen and (max-width: 767px){.tensorsite-top-tab .tensorsite-top-tab__content{padding:20px 0}}.tensorsite-top-tab__content--inner{align-items:center;display:flex;flex-wrap:wrap}.tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text{flex-basis:calc(40% - 30px)}.tensorsite-top-tab__content--inner .tensorsite-top-tab__image{background-position:center;background-repeat:no-repeat;background-size:contain;flex-basis:calc(60% - 30px);height:100%;margin-top:39px;min-height:400px}.tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text,.tensorsite-top-tab__content--inner .tensorsite-top-tab__image{margin:15px}@media only screen and (max-width: 1000px){.tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text,.tensorsite-top-tab__content--inner .tensorsite-top-tab__image{flex-basis:calc(100% - 30px);margin:0 auto}}.tensorsite-top-tab__tabs{display:flex;margin:auto;-ms-overflow-style:none;overflow-x:auto;position:relative;scrollbar-width:none;white-space:nowrap;width:84%}@media only screen and (max-width: 1000px){.tensorsite-top-tab__tabs{width:100%}}.tensorsite-top-tab__tabs label{font-size:14px;line-height:22px;color:#425066;cursor:pointer;flex:1 1 auto;font-weight:500;padding:45px 18px 18px 18px;position:relative;text-align:center;transition:color .2s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tensorsite-top-tab__tabs label:focus::after,.tensorsite-top-tab__tabs label:hover::after{width:calc(100% - 30px)}.tensorsite-top-tab__tabs label::after{background:#293241;border-radius:5px 5px 0 0;bottom:0;content:'';height:3px;left:15px;position:absolute;width:0;z-index:1}@media only screen and (max-width: 767px){.tensorsite-top-tab__tabs label:last-child{border-bottom:1px solid #dadada}}.tensorsite-top-tab__tabs::after{background:#dadada;bottom:0;content:'';height:1px;left:18px;position:absolute;width:calc(100% - 36px)}@media only screen and (max-width: 1000px){.tensorsite-top-tab__tabs::after{width:calc(180% - 36px)}}@media only screen and (min-width: 768px){.tensorsite-top-tab__tabs::after{width:calc(100% - 36px)}}@-webkit-keyframes tensorsite-top-tab__content-fade{from{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes tensorsite-top-tab__content-fade{from{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.tensorsite-sub-step__header-content .tensorsite-content{padding-left:0}@media only screen and (max-width: 767px){.tensorsite-sub-step__header-content .tensorsite-content{padding-right:0}}.tensorsite-sub-step__header-content .tensorsite-content__title{font-size:22px}.tensorsite-sub-step__title{color:#425066;font-size:22px;font-weight:500;margin-bottom:12px;margin-top:38px}@media only screen and (min-width: 768px){.tensorsite-sub-step__cards{display:flex;flex-wrap:wrap;justify-content:space-between}}.tensorsite-sub-step__cards .tensorsite-card{flex-basis:calc(50% - 30px);flex-shrink:0;margin-left:0;margin-right:0;max-width:calc(50% - 30px)}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-sub-step__cards .tensorsite-card{flex-basis:calc(50% / 3 - 30px - 1px)}}@supports (-ms-ime-align: auto){.tensorsite-sub-step__cards .tensorsite-card{flex-basis:calc(50% / 3 - 30px - 1px)}}@media only screen and (max-width: 850px){.tensorsite-sub-step__cards .tensorsite-card{flex-basis:100%;max-width:100%}}@media only screen and (max-width: 767px){.tensorsite-sub-step__cards .tensorsite-card{display:inline-block}}.tensorsite-list{padding:26px 0}@media only screen and (max-width: 767px){.tensorsite-list{padding:26px 0}}.tensorsite-list h5{overflow:visible}.tensorsite-list__title{color:#425066}.tensorsite-list__description a,.tensorsite-list__secondary-description a{border-bottom:1px solid #ff6f00;color:#616161;font-weight:500;transition:color .2s linear}.tensorsite-list__description a:hover,.tensorsite-list__secondary-description a:hover{color:#ff6f00}.tensorsite-list__items{padding-left:30px}.tensorsite-list__items--check{padding-left:40px}.tensorsite-list__items--custom-large{padding-left:56px}.tensorsite-list__item--check,.tensorsite-list__item--custom,.tensorsite-list__item--custom-large{list-style:none;position:relative}.tensorsite-list__item--check::before,.tensorsite-list__item--custom::before,.tensorsite-list__item--custom-large::before{content:'';position:absolute;top:3px}.tensorsite-list__item--check-large::before,.tensorsite-list__item--custom-large::before,.tensorsite-list__item--custom-large-large::before{height:36px;right:calc(100% + 20px);width:36px}.tensorsite-list__item--check::before{height:20px;left:-40px;width:20px}.tensorsite-list__item--custom::before{background-position:center;background-repeat:no-repeat;height:16px;left:-30px;width:16px}.tensorsite-list__item--email a{word-break:break-word}.tensorsite-list__item a{border-bottom:1px solid #ff6f00;color:#616161;font-weight:500;transition:color .2s linear}.tensorsite-list__item a:hover{color:#ff6f00}.tensorsite-list__item a p{display:inline}.tensorsite-list--box{border:1px #dadada solid;border-radius:10px;padding:26px}.tensorsite-list--white-bg{background-color:#fff}.tensorsite-list--large-title .tensorsite-list__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}.tensorsite-list--no-padding-bottom{padding-bottom:0 !important}.tensorsite-list--no-padding-top{padding-top:0 !important}.tensorsite-article-hero{margin:0 auto;max-width:1140px;position:relative}@media only screen and (min-width: 768px){.tensorsite-article-hero{padding:100px 180px 0}}@media only screen and (max-width: 1279px){.tensorsite-article-hero{flex-direction:column;padding:100px 100px 0}}@media only screen and (max-width: 1279px) and (-ms-high-contrast: none), only screen and (max-width: 1279px) and (-ms-high-contrast: active){.tensorsite-article-hero{display:block}}@media only screen and (max-width: 767px){.tensorsite-article-hero{padding:50px 35px 0}}.tensorsite-article-hero__inner{margin-bottom:80px}.tensorsite-article-hero .tensorsite-group__divider{margin:0 auto;width:100%}.tensorsite-article-hero__content .tensorsite-content{padding-left:0;padding-right:0}.tensorsite-article-hero__content:last-of-type .tensorsite-content{padding-bottom:0}.tensorsite-article-hero__content--white-bg{border:1px #ccc solid;border-radius:10px;padding:26px}.tensorsite-article-hero__content--white-bg .tensorsite-content{padding:0}.tensorsite-casestudy{background-color:#f5f6f7;margin:auto;min-height:1200px;padding:10px 40px;position:relative;display:flex;flex-direction:column;align-items:center}@media only screen and (max-width: 767px){.tensorsite-casestudy{padding:10px 20px}}.tensorsite-casestudy .tensorsite-card{background-color:#fff;max-width:none;z-index:1}@media only screen and (max-width: 1000px){.tensorsite-casestudy .tensorsite-card{flex-basis:calc(100% / 2 - 30px)}}@media only screen and (max-width: 767px){.tensorsite-casestudy .tensorsite-card{flex-basis:calc(100% - 30px)}}.tensorsite-casestudy .tensorsite-group__header{padding:0 40px;max-width:1380px}.tensorsite-casestudy .tensorsite-group__header .tensorsite-content{padding:0}@media only screen and (max-width: 767px){.tensorsite-casestudy .tensorsite-group__header{padding:0 12px}}.tensorsite-casestudy .tensorsite-container{padding:0}.tensorsite-casestudy__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px;color:#425066;margin:15px 15px 60px 15px}.tensorsite-casestudy__content{align-items:center;display:flex;flex-direction:column}@media only screen and (max-width: 767px){.tensorsite-casestudy__content{display:block}}.tensorsite-casestudy__content--centered{display:block}.tensorsite-casestudy__cards{flex-basis:calc(3 * 100% / 4 - 30px);flex-grow:0;flex-shrink:1}.tensorsite-casestudy__cards .tensorsite-group__inner{border-bottom:none}.tensorsite-casestudy__cards .tensorsite-container{padding:0px}.tensorsite-casestudy__filter{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;word-break:break-word}.tensorsite-casestudy__filter-categories{list-style:none;margin:0 0 20px 0;padding:0}.tensorsite-casestudy__filter-categories li:first-child span{border:0}.tensorsite-casestudy__filter__body{padding:0;display:flex;flex-direction:row;justify-content:flex-start;flex-wrap:wrap}.tensorsite-casestudy__filter__body label{font-size:14px;line-height:22px;color:#425066;font-weight:500;transition:color .2s linear;padding:0 16px 0 2px;margin-right:20px;border:1px solid #ff6f00;border-radius:20px}.tensorsite-casestudy__filter__body label:focus,.tensorsite-casestudy__filter__body label:hover{color:#ff6f00}.tensorsite-casestudy__filter__body label::before{content:none}.tensorsite-casestudy__filter__body label span{display:none;visibility:collapse}.tensorsite-casestudy__filter__body label .icon{display:block;opacity:1}.tensorsite-casestudy__filter__body label .icon--checked{display:none;opacity:0}.tensorsite-casestudy__filter__body input[type='checkbox']{left:-9999px;position:absolute;visibility:hidden}.tensorsite-casestudy__filter__body input[type='checkbox']:checked+label{background-color:#ff6f00;color:white}.tensorsite-casestudy__filter__body input[type='checkbox']:checked+label .icon{display:none;opacity:0}.tensorsite-casestudy__filter__body input[type='checkbox']:checked+label .icon--checked{display:block;opacity:1}.tensorsite-casestudy__filter__body input[type='checkbox']::after{content:none}.tensorsite-casestudy__filter__body li{list-style:none;margin:4px 0 0}.tensorsite-casestudy__filter__body:not(.expand){display:none}.tensorsite-casestudy__filter__item{font-size:14px;line-height:22px;color:#8e96a3;cursor:pointer;display:flex;align-items:center;margin:0 0 10px}.tensorsite-casestudy__filter__item::before{background-color:#fff;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #c6cad1;content:'';cursor:pointer;display:inline-block;height:16px;margin-left:2px;margin-right:10px;transition:background-color .2s linear;vertical-align:middle;width:16px}.tensorsite-casestudy__filter__item img{max-width:40px}.tensorsite-casestudy__filter__head{font-size:14px;line-height:22px;border-top:1px #dadada solid;color:#ff6f00;cursor:pointer;display:block;font-weight:600;padding:20px 10px 20px 30px;position:relative}.tensorsite-casestudy__filter__head::after{border-bottom:2px solid #8e96a3;border-right:2px solid #8e96a3;content:'';height:10px;position:absolute;right:20px;top:22px;-webkit-transform:rotate(45deg);transform:rotate(45deg);transition:all .3s ease-in-out;width:10px}.tensorsite-casestudy__filter__head--expand::after{border-bottom:2px solid #ff6f00;border-right:2px solid #ff6f00;-webkit-transform:rotate(225deg);transform:rotate(225deg)}@media only screen and (max-width: 767px){.tensorsite-casestudy__filter{border-radius:0;margin:0;width:100%}}.tensorsite-casestudy__message{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;color:#c6cad1;display:none;margin:150px auto}.tensorsite-casestudy__message--visible{display:block}.tensorsite-column-list{margin:0 auto 52px;max-width:1440px;padding:0 30px}.tensorsite-column-list__intro{margin:0 auto;max-width:642px}.tensorsite-column-list__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px;color:#425066;text-align:center}.tensorsite-column-list__description{color:#616161;text-align:center}.tensorsite-column-list__description a{border-bottom:1px solid #ff6f00;color:#616161;font-weight:500;transition:color .2s linear}.tensorsite-column-list__description a:hover{color:#ff6f00}.tensorsite-column-list__description a:focus{outline:2px solid #425066;outline-offset:-2px;text-decoration:none}.tensorsite-column-list__item{border-top:1px solid #dadada;display:flex;padding:50px 100px 30px}.tensorsite-column-list__item:last-child{border-bottom:1px solid #dadada}@media only screen and (max-width: 767px){.tensorsite-column-list__item{border-top:0;flex-direction:column;margin:20px 0;padding:20px;text-align:center}}@media only screen and (min-width: 768px){.tensorsite-column-list__item-image{flex:0 0 8%;margin-right:30px}}@media only screen and (max-width: 767px){.tensorsite-column-list__item-image{margin:15px 0}}.tensorsite-column-list__item-image img{max-height:96px;max-width:96px;width:100%}@media only screen and (min-width: 768px){.tensorsite-column-list__item-heading{flex:0 0 30%;margin-right:20px}}@media only screen and (max-width: 767px){.tensorsite-column-list__item-heading{margin:0}.tensorsite-column-list__item-heading .tensorsite-column-list__item-cta{display:none}}.tensorsite-column-list__item-title{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;color:#425066;margin-bottom:20px}.tensorsite-column-list__item-cta{transition:color .2s linear}@media only screen and (max-width: 767px){.tensorsite-column-list__item-cta{align-self:center}}@media only screen and (min-width: 768px){.tensorsite-column-list__item-cta--mobile{display:none}}.tensorsite-column-list__item-description{color:#616161}.tensorsite-column-list__item-description p:first-child{margin-top:0}.tensorsite-dynamic-blog-section .devsite-card-wrapper{flex-basis:auto;max-width:none;padding:0}.tensorsite-dynamic-blog-section .devsite-card-group{grid-template-columns:repeat(4, 1fr);margin:0 15px}@media only screen and (max-width: 1000px){.tensorsite-dynamic-blog-section .devsite-card-group{grid-template-columns:repeat(2, 1fr)}}@media only screen and (max-width: 1000px){.tensorsite-ecosystem .tensorsite-container{padding:0}}.tensorsite-ecosystem .ecosystem{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);padding:60px}@media only screen and (max-width: 1000px){.tensorsite-ecosystem .ecosystem{overflow:scroll;padding:50px 20px}}.tensorsite-ecosystem .ecosystem__row{border-bottom:1px solid #dadada;display:flex}@media only screen and (max-width: 1000px){.tensorsite-ecosystem .ecosystem__row{width:970px}.tensorsite-ecosystem .ecosystem__row::after{content:'';display:block;flex:0 0 20px;height:1px}}.tensorsite-ecosystem .ecosystem__row--header{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px;border:none;color:#425066;text-align:center}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col{padding-top:30px;position:relative}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col::before{font-size:18px;line-height:30px;background:#fff;border-radius:50%;box-shadow:0 0 36px rgba(0,0,0,0.1);color:#ff6f00;display:block;height:32px;left:50%;position:absolute;top:0;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:32px}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col:nth-child(0)::before{content:"-1"}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col:nth-child(1)::before{content:"0"}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col:nth-child(2)::before{content:"1"}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col:nth-child(3)::before{content:"2"}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__col:nth-child(4)::before{content:"3"}.tensorsite-ecosystem .ecosystem__row--header .ecosystem__row-body__bg::before,.tensorsite-ecosystem .ecosystem__row--header .ecosystem__row-body__bg::after,.tensorsite-ecosystem .ecosystem__row--header .ecosystem__row-body__bg .ecosystem__row-body__bg-col{border-top-left-radius:10px;border-top-right-radius:10px}.tensorsite-ecosystem .ecosystem__row-header{align-items:center;display:flex;flex:0 0 11%;flex-direction:column;justify-content:center;max-width:11%;padding:20px;text-align:center}.tensorsite-ecosystem .ecosystem__row-header__image{background-position:center;background-repeat:no-repeat;background-size:contain;height:40px;margin-bottom:10px;width:100%}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem__row-header__image{height:32px}}.tensorsite-ecosystem .ecosystem__row-header__title{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:18px;align-items:center;color:#425066;font-weight:500}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem__row-header__title{font-size:11px;line-height:14px}}.tensorsite-ecosystem .ecosystem__row-header__labels{font-family:"Google Sans",sans-serif;font-size:12px;font-weight:700;line-height:18px;color:#616161;margin-top:15px}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem__row-header__labels{font-size:10px;line-height:14px;margin-top:10px}}.tensorsite-ecosystem .ecosystem__row-body{display:flex;flex:0 0 89%;justify-content:space-between;max-width:89%;position:relative}.tensorsite-ecosystem .ecosystem__row-body__bg{bottom:0;display:flex;justify-content:space-between;left:0;position:absolute;right:0;top:0}.tensorsite-ecosystem .ecosystem__row-body__bg::before,.tensorsite-ecosystem .ecosystem__row-body__bg::after,.tensorsite-ecosystem .ecosystem__row-body__bg .ecosystem__row-body__bg-col{background:#f5f6f7;content:'';display:block;flex:0 0 calc(33.33% - 5px);max-width:calc(33.33% - 5px)}.tensorsite-ecosystem .ecosystem__col{display:flex;flex:0 0 calc(100%/3 - 5px);flex-direction:column;max-width:calc(100%/3 - 5px);padding:20px 20px 0;position:relative}.tensorsite-ecosystem .ecosystem__col--full{flex:0 0 100%;max-width:100%}.tensorsite-ecosystem .ecosystem__col--full .ecosystem-card__main-content,.tensorsite-ecosystem .ecosystem__col--full .ecosystem-card__expanding-content{margin:0 auto;max-width:450px;width:60%}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem__col{padding:15px 15px 0}}.tensorsite-ecosystem .ecosystem__next{background-image:url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/icon/icon_ecosystem_next.svg);background-position:center;background-repeat:no-repeat;background-size:80%;display:inline-block;height:20px;margin:-15px auto 5px;text-align:center;width:20px}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem__next{margin-top:-10px}}.tensorsite-ecosystem .ecosystem-input{left:-10000px;opacity:0;position:fixed}.tensorsite-ecosystem .ecosystem-input:checked+.ecosystem-card{z-index:10}.tensorsite-ecosystem .ecosystem-input:checked+.ecosystem-card .ecosystem-card__expanding-content{margin-bottom:20px;max-height:200px;opacity:1}.tensorsite-ecosystem .ecosystem-input:checked+.ecosystem-card .ecosystem-card__lower-content{box-shadow:0 0 64px rgba(0,0,0,0.22)}.tensorsite-ecosystem .ecosystem-input:checked+.ecosystem-card .ecosystem-card__toggle{background-image:url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/icon/icon_ecosystem_close.svg)}.tensorsite-ecosystem .ecosystem-card{border-radius:10px;font-weight:500;margin-bottom:20px;position:relative;font-family:"Google Sans",sans-serif;font-size:12px;line-height:16px}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem-card{font-size:10px;line-height:14px;margin-bottom:15px}}.tensorsite-ecosystem .ecosystem-card--no-cta .ecosystem-card__lower-content{padding-bottom:32px}.tensorsite-ecosystem .ecosystem-card__label{font-family:"Google Sans",sans-serif;font-size:12px;font-weight:700;line-height:18px;border-bottom:1px solid rgba(66,80,102,0.08);color:#425066;font-size:9px;position:relative;text-align:center;text-transform:uppercase;z-index:2}.tensorsite-ecosystem .ecosystem-card__content-wrapper{padding-bottom:31px}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem-card__content-wrapper{padding-bottom:29px}}.tensorsite-ecosystem .ecosystem-card__main-content{align-items:center;display:flex;height:80px;justify-content:center;margin:0 30px;overflow:hidden;position:relative;text-align:center;z-index:2}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem-card__main-content{height:60px;margin:0 15px}}.tensorsite-ecosystem .ecosystem-card__lower-content{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);height:auto;left:0;padding:100px 30px 15px;position:absolute;right:0;text-align:center;top:0;transition:box-shadow .3s ease;z-index:1}@media only screen and (max-width: 1279px){.tensorsite-ecosystem .ecosystem-card__lower-content{padding:80px 15px 15px}}.tensorsite-ecosystem .ecosystem-card__expanding-content{max-height:0px;opacity:0;overflow:hidden;text-align:center;transition:all .3s ease}.tensorsite-ecosystem .ecosystem-card__cta{border-bottom:1px solid #ff6f00;color:#616161;font-weight:500;transition:color .2s linear;color:#616161;font-weight:700}.tensorsite-ecosystem .ecosystem-card__cta:hover{color:#ff6f00}.tensorsite-ecosystem .ecosystem-card__cta:focus{outline:2px solid #425066;outline-offset:-2px}.tensorsite-ecosystem .ecosystem-card__toggle{background-image:url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/icon/icon_ecosystem_info.svg);background-position:center;background-repeat:no-repeat;background-size:auto;border-radius:50%;bottom:12px;cursor:pointer;height:24px;position:absolute;right:12px;width:24px}@media only screen and (max-width: 1000px){.tensorsite-ecosystem .ecosystem-card__toggle{bottom:0;height:48px;right:0;width:48px}}.tensorsite-examples-table{background:#fff;border-radius:10px;box-shadow:0 0 36px rgba(0,0,0,0.1);padding:40px}.tensorsite-examples-table input.tensorsite-examples-table__search{background:#f1f3f4;border:0;border-bottom:2px solid transparent;border-radius:2px;margin:12px 0;max-width:426px;padding:8px}.tensorsite-examples-table input.tensorsite-examples-table__search:focus{border-bottom:2px solid #1a73e8}.tensorsite-examples-table .devsite-select--multiple{margin:0 16px 8px 0}.tensorsite-examples-table .checkbox-demo{margin:8px 0}.tensorsite-examples-table table{border-radius:10px;margin-top:24px;overflow:hidden}.tensorsite-examples-table thead{background:#425066;color:#fff}.tensorsite-examples-table thead th{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:22px;background:none;color:#fff;padding:14px 24px}.tensorsite-examples-table thead th.widest-column{min-width:210px}.tensorsite-examples-table thead th.medium-column{min-width:150px}.tensorsite-examples-table tr{border:0}.tensorsite-examples-table tr td{min-width:130px;padding:12px 24px;vertical-align:middle;width:140px}.tensorsite-examples-table tr td>a{font-family:"Google Sans",sans-serif;font-weight:700;font-size:14px;line-height:22px}.tensorsite-examples-table tr td span:before,.tensorsite-examples-table tr td span:after{width:16px}.tensorsite-examples-table tr:nth-child(even){background-color:#425066}.tensorsite-examples-table .tensorsite-content__cta-wrapper a{align-self:center}.tensorsite-fancy-hero-wrapper{background-color:transparent;margin:0 auto;overflow:hidden;position:relative;width:100%}.tensorsite-fancy-hero-wrapper iframe.framebox{opacity:0}@media only screen and (min-width: 768px){.tensorsite-fancy-hero-wrapper iframe{min-height:550px}}.tensorsite-fancy-hero-wrapper devsite-framebox iframe{opacity:1}@media only screen and (min-width: 768px){.tensorsite-fancy-hero-wrapper+.tensorsite-casestudy{margin-top:-90px}}.tensorsite-fancy-hero-wrapper--short{min-height:0}.tensorsite-fancy-hero{background-color:transparent;margin:0 auto;max-width:1420px;padding:0 40px;position:relative}@media only screen and (min-width: 768px){.tensorsite-fancy-hero{min-height:440px}}@media only screen and (max-width: 767px){.tensorsite-fancy-hero{padding:0 20px}}.tensorsite-fancy-hero .tensorsite-content__subtitle{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:22px;font-weight:600}.tensorsite-fancy-hero .tensorsite-content__description{font-size:18px;line-height:30px;color:#425066}.tensorsite-fancy-hero .tensorsite-content__cta-wrapper{margin-top:8px}.tensorsite-fancy-hero__brand-image{background-repeat:no-repeat;background-size:contain;height:40px;margin:0 15px;width:calc(16.66667% - $margin-gutter)}.tensorsite-fancy-hero__image{position:absolute;right:-22%;top:0;width:70%}.tensorsite-fancy-hero__image img{max-height:430px}@media only screen and (max-width: 767px){.tensorsite-fancy-hero__image{width:110%}}.tensorsite-fancy-hero__content{margin:0 15px;padding:0;text-align:left;width:calc(41.66667% - 30px)}@media only screen and (max-width: 1000px){.tensorsite-fancy-hero__content{width:calc(50% - 30px)}}@media only screen and (max-width: 767px){.tensorsite-fancy-hero__content{margin:40% 0 0;width:100%}}@media only screen and (max-width: 767px){.tensorsite-fancy-hero__content .tensorsite-content{padding:26px 15px}}.tensorsite-fancy-hero__slides-wrapper{position:relative}.tensorsite-fancy-hero__slide{left:0;opacity:1;top:0;transition:.3s opacity linear;width:100%}@media only screen and (min-width: 768px){.tensorsite-fancy-hero__slide{padding:40px 8.33333%}}@media only screen and (max-width: 1279px){.tensorsite-fancy-hero__slide{flex-direction:column;padding:40px 0}}@media only screen and (max-width: 767px){.tensorsite-fancy-hero__slide{box-sizing:border-box;overflow:hidden;padding:50px 15px 20px}}.tensorsite-fancy-hero__slide--fade{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-name:tensorsite-fancy-hero__slide-fade;animation-name:tensorsite-fancy-hero__slide-fade}.tensorsite-fancy-hero__slide.is-carousel{position:absolute}.tensorsite-fancy-hero__slide.is-invisible{opacity:0;pointer-events:none}.tensorsite-fancy-hero__slide .tensorsite-content{padding-left:0;padding-right:0}.tensorsite-fancy-hero__dots{bottom:140px;position:absolute}@media only screen and (min-width: 1280px){.tensorsite-fancy-hero__dots{margin:30px 0 30px calc(8.33333% + (30px / 2 - 7px))}}@media only screen and (max-width: 1279px){.tensorsite-fancy-hero__dots{margin:30px 0 30px 10px}}@media only screen and (max-width: 767px){.tensorsite-fancy-hero__dots{bottom:20px;margin:0 0 30px 15px}}.tensorsite-fancy-hero__dot{background:none;border:2px #ccc solid;border-radius:50%;cursor:pointer;display:inline-block;height:14px;margin:0 2px;min-width:0;padding:0;transition:background-color .3s linear;width:14px}.tensorsite-fancy-hero__dot:focus{outline:2px solid #425066;outline-offset:-2px}.tensorsite-fancy-hero__dot.is-active{background-color:#ccc}.tensorsite-footer{margin-top:-92px;overflow:hidden;padding-top:92px;pointer-events:none;position:relative}.tensorsite-footer::before,.tensorsite-footer::after{bottom:0;content:'';display:block;position:absolute}.tensorsite-footer::before{background:#ff6f00;left:0;right:calc(1440px + ((100% - 1440px) / 2) + (192px / 2));top:184px}.tensorsite-footer::after{background:#ff9100;left:calc(1440px + ((100% - 1440px) / 2) + (192px / 2));right:0;top:0}.tensorsite-footer--gray{background-color:#f5f6f7}.tensorsite-footer__container{background-image:linear-gradient(-90deg, #ff9100 18%, #ff6f00 86%);margin:0 auto;max-width:calc(100% - 192px);min-height:350px;padding:70px 0;position:relative}@media screen and (min-width: 1440px){.tensorsite-footer__container{max-width:1248px}}@media only screen and (max-width: 767px){.tensorsite-footer__container{background-image:linear-gradient(-90deg, #ff9100, #ff6f00);padding-bottom:100px}}.tensorsite-footer__side{bottom:0;position:absolute;width:192px}.tensorsite-footer__side::before{content:'';display:block;height:92px;margin-top:-92px;width:100%}.tensorsite-footer__side--left{background:#ff6f00;left:-192px;top:92px}.tensorsite-footer__side--left::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 192 92'%3E%3Cpath d='M162 8L96 46 30 84a60.7 60.7 0 0 1-30 8h192V0a60.7 60.7 0 0 0-30 8z' fill='%23FF6F00'/%3E%3C/svg%3E")}.tensorsite-footer__side--right{background:#ff9100;right:-192px;top:0}.tensorsite-footer__side--right::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 192 92'%3E%3Cpath d='M162 8L96 46 30 84a60.7 60.7 0 0 1-30 8h192V0a60.7 60.7 0 0 0-30 8z' fill='%23FF9100'/%3E%3C/svg%3E")}.tensorsite-footer__content{pointer-events:auto;position:relative;z-index:3}.tensorsite-footer__content .tensorsite-content{margin:0 auto;max-width:650px;padding:0}.tensorsite-footer__content .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:30px;font-weight:700;line-height:40px;color:#fff;padding:0;text-align:center;width:auto}.tensorsite-footer__content .tensorsite-content__description{font-size:18px;line-height:30px;color:#fff;text-align:center}.tensorsite-footer__content .tensorsite-content__cta-wrapper{margin-top:10px;text-align:center}.tensorsite-footer__content .tensorsite-content__cta-wrapper a{align-self:center}.tensorsite-footer__content .tensorsite-content .tensorsite-content__title+.tensorsite-content__cta-wrapper{margin-top:40px}@media only screen and (max-width: 767px){.tensorsite-footer__content{margin:0 -76px}}.tensorsite-footer__lines{background:url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/footer-lines.svg) center bottom/100% auto no-repeat;bottom:0;left:50%;max-width:1720px;min-width:1320px;pointer-events:none;position:absolute;top:0;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);width:90vw;z-index:2}@media only screen and (max-width: 767px){.tensorsite-footer__lines{-webkit-transform:translate(-30%, 0);transform:translate(-30%, 0)}}@media only screen and (max-width: 480px){.tensorsite-footer__lines{-webkit-transform:translate(-20%, 0);transform:translate(-20%, 0)}}.tensorsite-footerlink{color:#425066;margin:0 auto 80px;max-width:1140px}@media only screen and (min-width: 768px){.tensorsite-footerlink{padding:0 180px}}@media only screen and (max-width: 1279px){.tensorsite-footerlink{flex-direction:column;margin-bottom:50px;padding:0 100px}}@media only screen and (max-width: 1279px) and (-ms-high-contrast: none), only screen and (max-width: 1279px) and (-ms-high-contrast: active){.tensorsite-footerlink{display:block}}@media only screen and (max-width: 767px){.tensorsite-footerlink{padding:35px 35px 0}}.tensorsite-footerlink__inner{display:flex}.tensorsite-footerlink__wrapper{color:#425066;cursor:pointer;margin-bottom:auto;transition:.2s color linear;width:46%}.tensorsite-footerlink__wrapper:focus{outline:2px solid #425066;outline-offset:-2px}.tensorsite-footerlink__wrapper-left{margin-right:auto;text-align:left}.tensorsite-footerlink__wrapper-left .tensorsite-footerlink__label{padding-left:35px}.tensorsite-footerlink__wrapper-left .tensorsite-footerlink__label::before,.tensorsite-footerlink__wrapper-left .tensorsite-footerlink__label::after{left:0}.tensorsite-footerlink__wrapper-right{margin-left:auto;text-align:right}.tensorsite-footerlink__wrapper-right .tensorsite-footerlink__label{padding-right:35px}.tensorsite-footerlink__wrapper-right .tensorsite-footerlink__label::before,.tensorsite-footerlink__wrapper-right .tensorsite-footerlink__label::after{right:0}.tensorsite-footerlink__wrapper:hover,.tensorsite-footerlink__wrapper:focus{color:#ff6f00}.tensorsite-footerlink__wrapper:hover .tensorsite-footerlink__label::before,.tensorsite-footerlink__wrapper:focus .tensorsite-footerlink__label::before{opacity:1}.tensorsite-footerlink__wrapper:hover .tensorsite-footerlink__label::after,.tensorsite-footerlink__wrapper:focus .tensorsite-footerlink__label::after{opacity:0}.tensorsite-footerlink__label{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px;position:relative}.tensorsite-footerlink__label::before,.tensorsite-footerlink__label::after{background-repeat:no-repeat;background-size:contain;bottom:0;content:'';height:18px;margin:auto 0;position:absolute;right:0px;top:0;transition:.2s opacity linear;width:18px}.tensorsite-footerlink__label::before{opacity:0}.tensorsite-footerlink__body{font-family:"Google Sans",sans-serif;font-size:20px;font-weight:500;line-height:26px}.tensorsite-hero+.tensorsite-group:not(.tensorsite-group--has-top-divider) .tensorsite-container:first-child{margin-top:0}@media only screen and (max-width: 767px){.tensorsite-group .tensorsite-block .tensorsite-card{flex-basis:calc(100% - 30px);flex-shrink:0}}@media only screen and (max-width: 767px){.tensorsite-group .tensorsite-expandable{padding:0 15px}}.tensorsite-group__divider{border-top:1px solid #dadada;margin:auto 80px;max-width:1420px}@media only screen and (min-width: 1430px){.tensorsite-group__divider{margin:auto;width:90%}}.tensorsite-group__divider--footerlink{border-color:#425066;margin:0 auto 22px;width:100%}.tensorsite-group__header .tensorsite-content{padding-bottom:50px;padding-top:0}@media only screen and (max-width: 767px){.tensorsite-group__header .tensorsite-content{padding-left:15px;padding-right:15px}}.tensorsite-group__header:last-child .tensorsite-content{padding-bottom:0}.tensorsite-group__header,.tensorsite-group__footer{margin:0 auto;text-align:center}.tensorsite-group__header .tensorsite-content__title,.tensorsite-group__footer .tensorsite-content__title{align-self:flex-start;margin:auto;max-width:540px}.tensorsite-group__header .tensorsite-content__small-title,.tensorsite-group__footer .tensorsite-content__small-title{align-self:flex-start;margin:auto;max-width:860px}.tensorsite-group__header .tensorsite-content__description,.tensorsite-group__footer .tensorsite-content__description{margin:10px auto;width:55%}@media only screen and (max-width: 1279px){.tensorsite-group__header .tensorsite-content__description,.tensorsite-group__footer .tensorsite-content__description{width:70%}}@media only screen and (max-width: 767px){.tensorsite-group__header .tensorsite-content__description,.tensorsite-group__footer .tensorsite-content__description{width:100%}}.tensorsite-group__header .tensorsite-content__description:last-child,.tensorsite-group__footer .tensorsite-content__description:last-child{margin-bottom:0}.tensorsite-group__header .tensorsite-content__cta-wrapper,.tensorsite-group__footer .tensorsite-content__cta-wrapper{margin-top:16px}.tensorsite-group__header ul.tensorsite-content__cta-wrapper,.tensorsite-group__footer ul.tensorsite-content__cta-wrapper{justify-content:center}.tensorsite-group__header .tensorsite-content__cta,.tensorsite-group__header .tensorsite-content__button,.tensorsite-group__footer .tensorsite-content__cta,.tensorsite-group__footer .tensorsite-content__button{align-self:center}.tensorsite-group__header--align-left,.tensorsite-group__footer--align-left{text-align:left}@media only screen and (max-width: 850px){.tensorsite-group__header--align-left,.tensorsite-group__footer--align-left{max-width:600px}}.tensorsite-group__header--align-left .tensorsite-content__description,.tensorsite-group__header--align-left .tensorsite-content__title,.tensorsite-group__footer--align-left .tensorsite-content__description,.tensorsite-group__footer--align-left .tensorsite-content__title{align-self:flex-start;margin-left:0;margin-right:0}.tensorsite-group__header--align-left .tensorsite-content__cta,.tensorsite-group__footer--align-left .tensorsite-content__cta{align-self:flex-start}.tensorsite-group__footer .tensorsite-content{padding-bottom:0;padding-top:50px}.tensorsite-group__footer .tensorsite-content .tensorsite-content__cta-wrapper a{align-self:center}.tensorsite-group__footer .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}.tensorsite-group__inner{display:flex;flex-wrap:wrap;list-style:none;margin:-15px auto}.tensorsite-group__inner[data-carousel-container]{flex-wrap:nowrap;transition:-webkit-transform .5s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .5s cubic-bezier(0.4, 0, 0.2, 1);transition:transform .5s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform .5s cubic-bezier(0.4, 0, 0.2, 1);will-change:transform}.tensorsite-group [data-carousel-wrapper]{position:relative}.tensorsite-group__button-previous,.tensorsite-group__button-next{background:#fff;border-radius:50%;box-shadow:0 0 36px rgba(0,0,0,0.1);height:46px;opacity:0;pointer-events:none;position:absolute;top:50%;-webkit-transform:translateY(-50%) translateY(20px);transform:translateY(-50%) translateY(20px);transition:box-shadow .3s cubic-bezier(0.4, 0, 0.2, 1),opacity .2s linear,-webkit-transform .2s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow .3s cubic-bezier(0.4, 0, 0.2, 1),opacity .2s linear,transform .2s cubic-bezier(0.4, 0, 0.2, 1);transition:box-shadow .3s cubic-bezier(0.4, 0, 0.2, 1),opacity .2s linear,transform .2s cubic-bezier(0.4, 0, 0.2, 1),-webkit-transform .2s cubic-bezier(0.4, 0, 0.2, 1);width:46px;z-index:10}@media only screen and (max-width: 1279px){.tensorsite-group__button-previous.is-visible,.tensorsite-group__button-next.is-visible{opacity:1;pointer-events:auto;-webkit-transform:translateY(-50%);transform:translateY(-50%)}}.tensorsite-group__button-previous:focus,.tensorsite-group__button-previous:hover,.tensorsite-group__button-next:focus,.tensorsite-group__button-next:hover{box-shadow:0 0 64px rgba(0,0,0,0.22)}.tensorsite-group__button-previous .material-icons,.tensorsite-group__button-next .material-icons{color:#ff6f00;font-size:36px;left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.tensorsite-group:focus__button-previous.is-visible,.tensorsite-group:focus__button-next.is-visible,.tensorsite-group:hover__button-previous.is-visible,.tensorsite-group:hover__button-next.is-visible{opacity:1;pointer-events:auto;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.tensorsite-group__button-previous{left:40px}@media only screen and (min-width: 1280px){.tensorsite-group__button-previous{left:calc((100vw - 1420px) / -2 + 40px)}}@media only screen and (max-width: 1279px){.tensorsite-group__button-previous{left:0}}.tensorsite-group__button-next{right:40px}@media only screen and (min-width: 1280px){.tensorsite-group__button-next{right:calc((100vw - 1420px) / -2 + 40px)}}@media only screen and (max-width: 1279px){.tensorsite-group__button-next{right:0}}.tensorsite-group--gray{background-color:#f5f6f7;margin-bottom:-120px;padding-bottom:120px;padding-top:80px}.tensorsite-group--gray .tensorsite-container{margin-top:0}.tensorsite-group--gray+.tensorsite-footer{margin-top:-180px}.tensorsite-group--condensed-top{padding-top:60px}.tensorsite-group--show-all .tensorsite-container{padding-bottom:86px;position:relative}.tensorsite-group--show-all .tensorsite-group__show-all-toggle{bottom:0;left:50%;opacity:0;position:absolute;-webkit-transform:translate(-50%, -5px);transform:translate(-50%, -5px)}.tensorsite-group--show-all .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner{margin-bottom:0;max-height:500px;overflow:hidden;transition:.3s max-height cubic-bezier(0.4, 0, 0.2, 1),.3s margin-bottom cubic-bezier(0.4, 0, 0.2, 1)}.tensorsite-group--show-all .tensorsite-group__show-all-toggle+label{bottom:0;left:50%;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tensorsite-group--show-all .tensorsite-group__show-all-toggle+label span::before{content:attr(data-show-all-default);display:inline-block}.tensorsite-group--show-all .tensorsite-group__show-all-toggle:checked{pointer-events:none}.tensorsite-group--show-all .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner{max-height:500px}.tensorsite-group--show-all .tensorsite-group__show-all-toggle:checked+label span::before{content:attr(data-show-all-collapse)}@media only screen and (max-width: 850px){.tensorsite-group--2up .tensorsite-group__inner,.tensorsite-group--row .tensorsite-group__inner{max-width:600px}}.tensorsite-group--2up .tensorsite-block,.tensorsite-group--2up .tensorsite-card:not(.tensorsite-card--horizontal),.tensorsite-group--row .tensorsite-block,.tensorsite-group--row .tensorsite-card:not(.tensorsite-card--horizontal){flex-basis:calc(50% - 30px);flex-shrink:0;max-width:calc(50% - 30px)}.tensorsite-group--2up .devsite-landing-row-item-code,.tensorsite-group--row .devsite-landing-row-item-code{display:flex;flex-direction:column}@media only screen and (max-width: 850px){.tensorsite-group--2up .tensorsite-block,.tensorsite-group--2up .tensorsite-card:not(.tensorsite-card--horizontal),.tensorsite-group--row .tensorsite-block,.tensorsite-group--row .tensorsite-card:not(.tensorsite-card--horizontal){flex-basis:calc(100% - 30px);max-width:calc(100% - 30px);order:0 !important}}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-group--2up .tensorsite-content,.tensorsite-group--row .tensorsite-content{display:block}}@media only screen and (max-width: 850px){.tensorsite-group--3up .tensorsite-group__inner,.tensorsite-group--3up-small .tensorsite-group__inner,.tensorsite-group--3up-short .tensorsite-group__inner{max-width:600px}}.tensorsite-group--3up .tensorsite-block,.tensorsite-group--3up .tensorsite-card,.tensorsite-group--3up-small .tensorsite-block,.tensorsite-group--3up-small .tensorsite-card,.tensorsite-group--3up-short .tensorsite-block,.tensorsite-group--3up-short .tensorsite-card{flex-basis:calc(100% / 3 - 30px);flex-shrink:0;max-width:calc(100% / 3 - 30px)}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-group--3up .tensorsite-block,.tensorsite-group--3up .tensorsite-card,.tensorsite-group--3up-small .tensorsite-block,.tensorsite-group--3up-small .tensorsite-card,.tensorsite-group--3up-short .tensorsite-block,.tensorsite-group--3up-short .tensorsite-card{flex-basis:calc(100% / 3 - 30px - 1px)}}@supports (-ms-ime-align: auto){.tensorsite-group--3up .tensorsite-block,.tensorsite-group--3up .tensorsite-card,.tensorsite-group--3up-small .tensorsite-block,.tensorsite-group--3up-small .tensorsite-card,.tensorsite-group--3up-short .tensorsite-block,.tensorsite-group--3up-short .tensorsite-card{flex-basis:calc(100% / 3 - 30px - 1px)}}@media only screen and (max-width: 850px){.tensorsite-group--3up .tensorsite-block,.tensorsite-group--3up .tensorsite-card,.tensorsite-group--3up-small .tensorsite-block,.tensorsite-group--3up-small .tensorsite-card,.tensorsite-group--3up-short .tensorsite-block,.tensorsite-group--3up-short .tensorsite-card{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px);order:0 !important}}@media only screen and (max-width: 1000px){.tensorsite-group--3up .tensorsite-block .tensorsite-content,.tensorsite-group--3up-small .tensorsite-block .tensorsite-content,.tensorsite-group--3up-short .tensorsite-block .tensorsite-content{padding-left:0;padding-right:0}}@media only screen and (max-width: 767px){.tensorsite-group--3up .tensorsite-block .tensorsite-content,.tensorsite-group--3up-small .tensorsite-block .tensorsite-content,.tensorsite-group--3up-short .tensorsite-block .tensorsite-content{padding-left:30px;padding-right:30px}}.tensorsite-group--3up .tensorsite-block .devsite-landing-row-item-code,.tensorsite-group--3up .tensorsite-card:not(.tensorsite-card--horizontal) .devsite-landing-row-item-code,.tensorsite-group--3up-small .tensorsite-block .devsite-landing-row-item-code,.tensorsite-group--3up-small .tensorsite-card:not(.tensorsite-card--horizontal) .devsite-landing-row-item-code,.tensorsite-group--3up-short .tensorsite-block .devsite-landing-row-item-code,.tensorsite-group--3up-short .tensorsite-card:not(.tensorsite-card--horizontal) .devsite-landing-row-item-code,.tensorsite-group--row .tensorsite-block .devsite-landing-row-item-code,.tensorsite-group--row .tensorsite-card:not(.tensorsite-card--horizontal) .devsite-landing-row-item-code{display:flex;flex-direction:column}.tensorsite-group--3up-small .tensorsite-group__inner{justify-content:center;width:75%}@media only screen and (max-width: 1000px){.tensorsite-group--3up-small .tensorsite-group__inner{width:auto}}@media only screen and (max-width: 1150px){.tensorsite-group--3up-small .tensorsite-block,.tensorsite-group--3up-small .tensorsite-card{flex-basis:calc(50% - 30px);max-width:calc(50% - 30px)}}@media only screen and (max-width: 767px){.tensorsite-group--3up-small .tensorsite-block,.tensorsite-group--3up-small .tensorsite-card{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}}.tensorsite-group--3up-short .tensorsite-content__image-wrapper{align-items:center;display:flex;justify-content:center;max-height:150px;overflow:hidden}.tensorsite-group--4up .tensorsite-group__inner,.tensorsite-group--5up .tensorsite-group__inner{justify-content:center}@media only screen and (max-width: 767px){.tensorsite-group--4up .tensorsite-group__inner,.tensorsite-group--5up .tensorsite-group__inner{max-width:600px}}@media only screen and (max-width: 767px){.tensorsite-group--4up .tensorsite-block,.tensorsite-group--5up .tensorsite-block{margin:40px 0}}@media only screen and (max-width: 767px){.tensorsite-group--4up .tensorsite-card--hero,.tensorsite-group--5up .tensorsite-card--hero{min-height:400px}}.tensorsite-group--4up .tensorsite-content__title,.tensorsite-group--5up .tensorsite-content__title{max-width:none}.tensorsite-group--4up .tensorsite-block--plain .tensorsite-content,.tensorsite-group--5up .tensorsite-block--plain .tensorsite-content{padding-left:0;padding-right:0}.tensorsite-group--4up .tensorsite-block,.tensorsite-group--4up .tensorsite-card{flex-basis:calc(25% - 30px);flex-shrink:0;max-width:calc(25% - 30px)}@media only screen and (max-width: 1279px){.tensorsite-group--4up .tensorsite-block,.tensorsite-group--4up .tensorsite-card{flex-basis:calc(50% - 30px);max-width:calc(50% - 30px)}}@media only screen and (max-width: 767px){.tensorsite-group--4up .tensorsite-block,.tensorsite-group--4up .tensorsite-card{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}}.tensorsite-group--5up .tensorsite-block,.tensorsite-group--5up .tensorsite-card{flex-basis:calc(20% - 30px);flex-shrink:0;max-width:calc(20% - 30px)}@media only screen and (max-width: 1279px){.tensorsite-group--5up .tensorsite-block,.tensorsite-group--5up .tensorsite-card{flex-basis:calc(50% - 30px);max-width:calc(50% - 30px)}}@media only screen and (max-width: 767px){.tensorsite-group--5up .tensorsite-block,.tensorsite-group--5up .tensorsite-card{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}}.tensorsite-group--logos .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__inner{justify-content:center;margin-top:-20px}.tensorsite-group--logos .tensorsite-block,.tensorsite-group--logos .tensorsite-card,.tensorsite-group--logos-small .tensorsite-block,.tensorsite-group--logos-small .tensorsite-card{flex-basis:calc(12.5% - 30px);flex-grow:0;flex-shrink:0}@media only screen and (max-width: 1279px){.tensorsite-group--logos .tensorsite-block,.tensorsite-group--logos .tensorsite-card,.tensorsite-group--logos-small .tensorsite-block,.tensorsite-group--logos-small .tensorsite-card{flex-basis:calc(25% - 30px)}}@media only screen and (max-width: 767px){.tensorsite-group--logos .tensorsite-block,.tensorsite-group--logos .tensorsite-card,.tensorsite-group--logos-small .tensorsite-block,.tensorsite-group--logos-small .tensorsite-card{flex-basis:calc(50% - 30px)}}.tensorsite-group--logos .tensorsite-block,.tensorsite-group--logos-small .tensorsite-block{margin-bottom:0;margin-top:20px}.tensorsite-group--logos .tensorsite-block:nth-child(n+9),.tensorsite-group--logos-small .tensorsite-block:nth-child(n+9){visibility:hidden}.tensorsite-group--logos .tensorsite-block__image,.tensorsite-group--logos-small .tensorsite-block__image{background-position:center center;background-repeat:no-repeat;background-size:contain;height:65px}.tensorsite-group--logos .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner{max-height:90px}@media only screen and (max-width: 1279px){.tensorsite-group--logos .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner{max-height:calc(85px * 2)}}@media only screen and (max-width: 767px){.tensorsite-group--logos .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle ~ .tensorsite-group__inner{max-height:calc(85px * 4)}}.tensorsite-group--logos .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner{--number-of-rows: 6;max-height:510px;max-height:calc(85px * var(--number-of-rows))}@media only screen and (max-width: 1279px){.tensorsite-group--logos .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner{max-height:1020px;max-height:calc(85px * var(--number-of-rows) * 2)}}@media only screen and (max-width: 767px){.tensorsite-group--logos .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner,.tensorsite-group--logos-small .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner{max-height:1020px;max-height:calc(85px * var(--number-of-rows) * 4)}}.tensorsite-group--logos .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner .tensorsite-block:nth-child(n+9),.tensorsite-group--logos-small .tensorsite-group__show-all-toggle:checked ~ .tensorsite-group__inner .tensorsite-block:nth-child(n+9){visibility:visible}.tensorsite-group--logos-wide .tensorsite-block{margin-left:30px;margin-right:30px}.tensorsite-group--row .tensorsite-group__header,.tensorsite-group--row-3up .tensorsite-group__header{display:flex;flex-basis:calc(100% / 3);flex-direction:column;flex-grow:0;flex-shrink:0;margin:15px 0;max-width:calc(100% / 3);text-align:left}@media only screen and (max-width: 850px){.tensorsite-group--row .tensorsite-group__header,.tensorsite-group--row-3up .tensorsite-group__header{flex-basis:100%;max-width:none}}@media only screen and (max-width: 767px){.tensorsite-group--row .tensorsite-group__header,.tensorsite-group--row-3up .tensorsite-group__header{flex-basis:100%;max-width:100%}}.tensorsite-group--row .tensorsite-group__header .tensorsite-content,.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content{padding-bottom:0;padding-top:0}.tensorsite-group--row .tensorsite-group__header .tensorsite-content__title,.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content__title{align-self:flex-start;margin:0;max-width:none}.tensorsite-group--row .tensorsite-group__header .tensorsite-content__description,.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content__description{margin:0;width:auto}.tensorsite-group--row .tensorsite-group__inner-wrapper,.tensorsite-group--row-3up .tensorsite-group__inner-wrapper{display:flex;flex-basis:calc(100% / 3 * 2);flex-wrap:wrap;max-width:calc(100% / 3 * 2)}@media only screen and (max-width: 850px){.tensorsite-group--row .tensorsite-group__inner-wrapper,.tensorsite-group--row-3up .tensorsite-group__inner-wrapper{flex-basis:100%;max-width:none}}@media only screen and (max-width: 767px){.tensorsite-group--row .tensorsite-group__inner-wrapper,.tensorsite-group--row-3up .tensorsite-group__inner-wrapper{flex-basis:100%;max-width:100%}}@media only screen and (min-width: 851px){.tensorsite-group--row-3up .tensorsite-container{display:flex}}@media only screen and (max-width: 850px){.tensorsite-group--row-3up .tensorsite-container .tensorsite-group__inner{max-width:600px}}@media only screen and (min-width: 851px){.tensorsite-group--row-3up .tensorsite-group__header{max-width:calc(100% / 4)}}.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content{padding:0 15px 50px}@media only screen and (max-width: 850px){.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content{text-align:center}}.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}@media only screen and (max-width: 850px){.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content__title{align-self:center}}@media only screen and (max-width: 850px){.tensorsite-group--row-3up .tensorsite-group__header .tensorsite-content__subtitle{margin:0 auto 8px}}.tensorsite-group--row-3up .tensorsite-group__inner{width:100%}.tensorsite-group--row-3up .tensorsite-group__inner .tensorsite-card{max-width:calc(100% / 3 - 30px)}@media only screen and (max-width: 1279px){.tensorsite-group--row-3up .tensorsite-group__inner .tensorsite-card{flex-basis:calc(100% / 2 - 30px);max-width:calc(100% / 2 - 30px)}}@media only screen and (max-width: 850px){.tensorsite-group--row-3up .tensorsite-group__inner .tensorsite-card{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}}.tensorsite-group--why-learn{position:relative;z-index:1}@media only screen and (max-width: 850px){.tensorsite-group--single-card .tensorsite-group__inner{max-width:600px}}.tensorsite-group--single-card .tensorsite-card{margin:15px auto;max-width:calc(66.66667% - 30px)}@media only screen and (max-width: 1279px){.tensorsite-group--single-card .tensorsite-card{max-width:calc(83.33333% - 30px)}}@media only screen and (max-width: 850px){.tensorsite-group--single-card .tensorsite-card{max-width:100%}}.tensorsite-group--full-width .tensorsite-content__title{max-width:100%}.tensorsite-group--full-width .tensorsite-content__description{width:auto}.tensorsite-group--standalone .tensorsite-container{margin-bottom:0}.tensorsite-hero{display:flex;margin:0 auto;max-width:1420px;padding:0 40px;position:relative}@media only screen and (min-width: 768px){.tensorsite-hero{padding:100px 40px 50px}}@media only screen and (max-width: 1279px){.tensorsite-hero{flex-direction:column;padding:100px 100px 50px}}@media only screen and (max-width: 1279px) and (-ms-high-contrast: none), only screen and (max-width: 1279px) and (-ms-high-contrast: active){.tensorsite-hero{display:block}}@media only screen and (max-width: 767px){.tensorsite-hero{padding:50px 20px 0}}@media only screen and (min-width: 1280px){.tensorsite-hero--river,.tensorsite-hero--river-large{align-items:center;justify-content:space-between}}.tensorsite-hero--river::before,.tensorsite-hero--river-large::before{background:url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/hero-river-bg-left.svg) center/cover no-repeat;content:'';height:304px;left:-250px;position:absolute;top:0;width:443px}@media only screen and (min-width: 768px){.tensorsite-hero--river::after,.tensorsite-hero--river-large::after{background:url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/hero-river-bg-right.svg) center/cover no-repeat;content:'';height:904px;position:absolute;right:-350px;top:0;width:1440px;z-index:-1}}.tensorsite-hero--river .tensorsite-hero__side--left,.tensorsite-hero--river-large .tensorsite-hero__side--left{background-color:#ff6f00;height:304px;right:calc(100% + 250px);top:0}.tensorsite-hero--river .tensorsite-hero__side--right,.tensorsite-hero--river-large .tensorsite-hero__side--right{background:linear-gradient(to bottom, #f5f6f7, rgba(255,255,255,0));height:904px;left:calc(100% + 350px);top:0}.tensorsite-hero--center .tensorsite-hero__content{flex-basis:100% !important;margin-left:0;max-width:none !important}.tensorsite-hero--center .tensorsite-hero__content .tensorsite-content{margin:0 auto;text-align:center;width:50%}@media only screen and (max-width: 767px){.tensorsite-hero--center .tensorsite-hero__content .tensorsite-content{width:auto}}.tensorsite-hero--river .tensorsite-hero__content{flex:0 0 calc(41.66667% - 30px);max-width:calc(41.66667% - 30px)}@media only screen and (max-width: 1279px){.tensorsite-hero--river .tensorsite-hero__content{flex-basis:83.33333%;margin:0 auto;max-width:83.33333%}}@media only screen and (max-width: 767px){.tensorsite-hero--river .tensorsite-hero__content{flex-basis:100%;max-width:100%}}.tensorsite-hero--river-large{padding-left:180px;padding-right:180px}@media only screen and (max-width: 767px){.tensorsite-hero--river-large{padding:80px 20px 40px}}.tensorsite-hero--river-large::before{background:url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/hero-river-bg-left-large.svg) center/cover no-repeat;height:546px;left:-450px;width:774px}.tensorsite-hero--river-large .tensorsite-hero__side--left{height:546px;right:calc(100% + 449px)}.tensorsite-hero--river-large .tensorsite-hero__image{display:none}.tensorsite-hero--image{display:block}@media only screen and (min-width: 768px){.tensorsite-hero--image{min-height:550px}}@media only screen and (max-width: 1279px){.tensorsite-hero--image{padding-left:70px;padding-right:70px}}@media only screen and (max-width: 767px){.tensorsite-hero--image{padding:50px 20px}}@media only screen and (min-width: 768px){.tensorsite-hero--image+.tensorsite-casestudy{margin-top:-90px}}.tensorsite-hero--image .tensorsite-hero__image{margin:0 auto;padding:0;position:absolute;right:-18%;top:0;width:68%}@media only screen and (max-width: 767px){.tensorsite-hero--image .tensorsite-hero__image{width:122%}.tensorsite-hero--image .tensorsite-hero__image img{max-width:100%}}@media only screen and (min-width: 768px){.tensorsite-hero--image .tensorsite-hero__content{width:33.33333%}}@media only screen and (max-width: 1279px){.tensorsite-hero--image .tensorsite-hero__content{text-align:left;width:41.66667%}}@media only screen and (max-width: 767px){.tensorsite-hero--image .tensorsite-hero__content{margin:60% 0 0;padding-top:26px;width:100%}}.tensorsite-hero--image .tensorsite-hero__content .tensorsite-content__description{font-family:"Roboto",sans-serif;font-size:16px;line-height:26px}@media only screen and (min-width: 768px){.tensorsite-hero--image .tensorsite-hero__content .tensorsite-content__description{padding-bottom:100px}}@media only screen and (min-width: 1280px){.tensorsite-hero--shape{align-items:center;justify-content:space-between;padding-bottom:0;padding-top:20px}}.tensorsite-hero--shape::before{background:url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/hero-shape-bg.svg) center/cover no-repeat;content:'';height:402.25179px;position:absolute;right:-32%;top:0;width:1500px;z-index:-1}@media only screen and (max-width: 767px){.tensorsite-hero--shape::before{left:50%;right:auto;top:0;-webkit-transform:translateX(-50%);transform:translateX(-50%)}}@media only screen and (max-width: 1279px){.tensorsite-hero--shape .tensorsite-hero__content{flex-basis:66.66667%;margin:0 auto;max-width:66.66667%}}@media only screen and (max-width: 767px){.tensorsite-hero--shape .tensorsite-hero__content{flex-basis:100%;max-width:100%}}.tensorsite-hero--video{height:600px;margin-bottom:50px}@media only screen and (min-width: 1280px){.tensorsite-hero--video{padding-top:120px}}@media only screen and (max-width: 1279px){.tensorsite-hero--video{flex-direction:row}}@media only screen and (max-width: 1000px){.tensorsite-hero--video{flex-direction:column;height:auto}}@media only screen and (max-width: 767px){.tensorsite-hero--video{margin-bottom:0}}.tensorsite-hero--video::after{background:#dadada;bottom:0;content:'';height:1px;left:50%;position:absolute;-webkit-transform:translate(-50%, 0);transform:translate(-50%, 0);width:100vw;z-index:1}.tensorsite-hero--video::before{background:url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/hero-video-bg.svg) top right/cover no-repeat;bottom:0;content:'';left:0;position:absolute;top:0;width:75%;z-index:1}@media only screen and (max-width: 1000px){.tensorsite-hero--video::before{display:none}}.tensorsite-hero--video .tensorsite-hero__content{position:relative;z-index:1}@media only screen and (max-width: 1279px){.tensorsite-hero--video .tensorsite-hero__content{text-align:left}}@media only screen and (min-width: 1280px){.tensorsite-hero--video .tensorsite-hero__content{max-width:calc(33.33333% - 30px)}}@media only screen and (max-width: 1000px){.tensorsite-hero--video .tensorsite-hero__content{padding-bottom:50px;text-align:center}}@media only screen and (min-width: 768px){.tensorsite-hero--video .tensorsite-hero__content .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:46px;font-weight:700;line-height:56px}}@media only screen and (max-width: 1000px){.tensorsite-hero--video .tensorsite-content__cta-wrapper{justify-content:center}}.tensorsite-hero--video .tensorsite-hero__image{bottom:0;left:0;margin-bottom:0;margin-top:0;padding:0;position:absolute;right:0;top:0}@media only screen and (min-width: 1441px){.tensorsite-hero--video .tensorsite-hero__image{margin-left:2px;margin-right:calc((100vw - 1420px) / -2)}}@media only screen and (max-width: 1000px){.tensorsite-hero--video .tensorsite-hero__image{height:45vw;margin-left:-100px;margin-right:-100px;min-height:350px;position:relative}.tensorsite-hero--video .tensorsite-hero__image.tensorsite-hero__image--has-mobile .tensorsite-hero__image--desktop{display:none}}.tensorsite-hero--video .tensorsite-hero__image--desktop,.tensorsite-hero--video .tensorsite-hero__image--mobile{background:center right 45% / cover no-repeat;bottom:0;left:0;position:absolute;right:0;top:0}.tensorsite-hero--video .tensorsite-hero__image--mobile{display:none}@media only screen and (max-width: 1000px){.tensorsite-hero--video .tensorsite-hero__image--mobile{display:block}}.tensorsite-hero--video .tensorsite-hero__side--left{background-color:#fff;height:100%;right:100%;top:0;z-index:1}.tensorsite-hero--video .tensorsite-hero__play-button{bottom:0;position:absolute;right:20%;top:0;z-index:2}@media only screen and (max-width: 1000px){.tensorsite-hero--video .tensorsite-hero__play-button{left:0;right:0}}@media only screen and (min-width: 1280px){.tensorsite-hero--community{padding-bottom:20px;padding-right:60px;padding-top:20px}.tensorsite-hero--community .tensorsite-hero__content{max-width:400px}}.tensorsite-hero--narrow{min-height:440px}.tensorsite-hero--narrow .tensorsite-hero__content .tensorsite-content{width:500px}@media only screen and (max-width: 1279px){.tensorsite-hero--narrow .tensorsite-hero__content .tensorsite-content{width:auto}}@media only screen and (max-width: 767px){.tensorsite-hero--narrow .tensorsite-hero__content .tensorsite-content{padding:0 15px;width:auto}}@media only screen and (max-width: 767px){.tensorsite-hero--narrow .tensorsite-hero__content .tensorsite-hero__buttons{padding:0 15px}}.tensorsite-hero__side{position:absolute;width:calc((100vw - 1440px) / 2)}@media only screen and (min-width: 1280px){.tensorsite-hero__content{margin-left:calc(8.33333% + (30px / 2))}.tensorsite-hero--shape .tensorsite-hero__content{max-width:400px}}@media only screen and (max-width: 1279px){.tensorsite-hero__content{text-align:center}}@media only screen and (min-width: 768px){.tensorsite-hero__content{flex:0 0 50%}}.tensorsite-hero__content .tensorsite-content{padding:0}@media only screen and (max-width: 767px){.tensorsite-hero__content .tensorsite-content{padding:0 15px}}.tensorsite-hero__content .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:30px;font-weight:700;line-height:40px}.tensorsite-hero__content .tensorsite-content__description{font-size:18px;line-height:30px;color:#425066}.tensorsite-hero__content .tensorsite-content__description a{color:#425066}.tensorsite-hero__content .tensorsite-content__cta-wrapper{margin-top:8px}@media only screen and (max-width: 1279px){.tensorsite-hero__content .tensorsite-content__cta-wrapper .tensorsite-content__cta{align-self:center}}.tensorsite-hero__buttons{-webkit-column-gap:20px;-moz-column-gap:20px;column-gap:20px;display:grid;grid-template-rows:-webkit-max-content -webkit-max-content;grid-template-rows:max-content max-content;margin:24px auto 20px;max-width:300px}@media only screen and (min-width: 768px){.tensorsite-hero__buttons{grid-auto-flow:column;grid-template-columns:1fr 1fr 1fr;max-width:none}}@media only screen and (max-width: 1279px){.tensorsite-hero__buttons{justify-content:center}}.tensorsite-hero__buttons--fixed-width .tensorsite-hero__button-column{width:160px}.tensorsite-hero__buttons--fixed-width .tensorsite-hero__button{width:100%}.tensorsite-hero__button{align-items:center;display:flex;justify-content:center;text-align:center}.tensorsite-hero__button-subtitle{font-size:12px;line-height:18px;color:#616161}@media only screen and (max-width: 767px){.tensorsite-hero__image{margin:20px -8%}}@media only screen and (min-width: 768px){.tensorsite-hero__image{flex:0 0 50%}}@media only screen and (max-width: 1279px){.tensorsite-hero__image{margin:20px auto;text-align:center}}@media only screen and (min-width: 1280px){.tensorsite-hero__image{padding-left:25px}.tensorsite-hero__image.video-wrapper{padding-right:10%}}@media only screen and (max-width: 767px){.tensorsite-hero__image img{max-width:500px;width:100%}}@media only screen and (min-width: 768px){.tensorsite-hero__image img{min-width:500px}}.tensorsite-home-hero-wrapper{background:#fff url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/home/hero/hero_slice_desktop_center.svg) no-repeat top center/contain;background-size:1721px auto;height:845px;margin:auto auto -220px auto;max-width:1721px;position:relative}@media only screen and (max-width: 1000px){.tensorsite-home-hero-wrapper{background:#f5f6f7 url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/home/hero/hero_slice-mobile.svg) no-repeat right top/100%;height:900px;margin:auto}}@media only screen and (max-width: 767px){.tensorsite-home-hero-wrapper{background-position:100% calc(50px - 15vw);background-size:900px}}@media only screen and (max-width: 480px){.tensorsite-home-hero-wrapper{background-position:100% 0%;background-size:1000px}}.tensorsite-home-hero-wrapper iframe{min-height:750px;width:100%}.tensorsite-home-hero-wrapper iframe.framebox{opacity:0}.tensorsite-home-hero-wrapper devsite-framebox iframe{margin:0;opacity:1}.tensorsite-home-hero{height:845px;margin:auto;max-width:1721px;position:relative}@media only screen and (max-width: 1000px){.tensorsite-home-hero{height:900px;margin:auto}}@media only screen and (max-width: 767px){.tensorsite-home-hero{background-size:220%}}.tensorsite-home-hero .tensorsite-container{margin:0}@media only screen and (max-width: 767px){.tensorsite-home-hero .tensorsite-container{width:auto}}.tensorsite-home-hero .tensorsite-top-tab{margin-left:50px;max-width:640px;position:absolute}@media only screen and (max-width: 985px){.tensorsite-home-hero .tensorsite-top-tab{bottom:20px;left:0;margin:auto;max-width:none;right:0;width:80%}}@media only screen and (max-width: 767px){.tensorsite-home-hero .tensorsite-top-tab{bottom:0;width:100%}}.tensorsite-home-hero .tensorsite-top-tab__tabs{margin:0 26px;overflow:auto;-ms-overflow-style:none;width:auto}@media only screen and (max-width: 1000px){.tensorsite-home-hero .tensorsite-top-tab__tabs::after{width:calc(100% - 44px)}}@media only screen and (max-width: 767px){.tensorsite-home-hero .tensorsite-top-tab__tabs::after{width:calc(150% - 44px)}}.tensorsite-home-hero .tensorsite-top-tab__tabs label{padding:24px 18px 14px 18px}@media only screen and (max-width: 850px){.tensorsite-home-hero .tensorsite-group__header{max-width:none}}.tensorsite-home-hero .tensorsite-group__header .tensorsite-content{padding-bottom:40px}@media only screen and (max-width: 767px){.tensorsite-home-hero .tensorsite-group__header .tensorsite-content{padding:0 10px 20px 10px}}.tensorsite-home-hero .tensorsite-top-tab .tensorsite-top-tab__content{padding:0 10px 20px 10px}.tensorsite-home-hero .tensorsite-content .tensorsite-content__cta-wrapper a{align-self:flex-start}.tensorsite-home-hero .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:46px;font-weight:700;line-height:56px;color:#fff;margin:0;max-width:520px;overflow:visible;padding:80px 0 0 70px;top:0;z-index:1}@media only screen and (max-width: 1500px){.tensorsite-home-hero .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:34px;font-weight:500;line-height:44px;font-weight:700}}@media only screen and (max-width: 1350px){.tensorsite-home-hero .tensorsite-content__title{max-width:380px;padding:60px 0 0 30px}}@media only screen and (max-width: 767px){.tensorsite-home-hero .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:30px;font-weight:700;line-height:40px;max-width:350px;padding:30px 20px 20px 0}}@media only screen and (max-width: 480px){.tensorsite-home-hero .tensorsite-content__title{margin:0 auto;padding:20px}}.tensorsite-home-hero .tensorsite-content__description{margin-bottom:32px}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-home-hero .tensorsite-content__description{max-width:560px}}.tensorsite-home-hero__side{position:absolute;width:calc((100vw - 1721px) / 2 + 3px)}.tensorsite-home-hero__side--left{background-color:#ff6f00;height:696px;right:calc(100% - 3px)}.tensorsite-home-hero__side--right{background-color:#f5f6f7;height:763px;left:calc(100% - 3px)}.tensorsite-home-hero-animation{left:51%;max-width:800px;opacity:0;position:absolute;top:0;transition:.3s opacity linear;width:800px}@media only screen and (max-width: 1279px){.tensorsite-home-hero-animation{top:40px;width:60%}}@media only screen and (max-width: 1000px){.tensorsite-home-hero-animation{left:41%;top:28vw;width:70%}}@media only screen and (max-width: 767px){.tensorsite-home-hero-animation{left:15vw;margin:0 auto;top:calc(300px - 10vw);width:100%}}@media only screen and (max-width: 480px){.tensorsite-home-hero-animation{left:0;margin:0 auto;top:300px;width:100%}}.tensorsite-home-hero-animation.is-loaded{opacity:1}.tensorsite-home-hero-animation .tensorsite-home-hero-animation-browser,.tensorsite-home-hero-animation .tensorsite-home-hero-animation-phone,.tensorsite-home-hero-animation .tensorsite-home-hero-animation-server{height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-home-hero-animation{height:800px;top:0;width:600px}}.tensorsite-partner-detail{background:#f5f6f7}.tensorsite-partner-detail .tensorsite-container{margin:0 auto;max-width:1420px;padding:0 40px}@media only screen and (max-width: 767px){.tensorsite-partner-detail .tensorsite-container{padding:0 20px}}.tensorsite-partner-detail .tensorsite-container::after{clear:both;content:'';display:table}.tensorsite-partner-detail+.tensorsite-footer{margin-top:0}.tensorsite-partner-detail__section{float:left;margin-left:calc(8.33333% + (30px / 2));margin-right:15px;padding:50px 0;position:relative;width:calc(58.33333% - 30px)}@media only screen and (max-width: 1279px){.tensorsite-partner-detail__section{margin-left:15px;padding:30px 0}}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section{margin-left:0;margin-right:0;width:100%}.tensorsite-partner-detail__section:first-child::after{content:none}}.tensorsite-partner-detail__section::after{border-bottom:1px solid #dadada;bottom:0;content:'';height:1px;left:0;position:absolute;right:0}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section::after{left:15px;right:15px}}.tensorsite-partner-detail__section:last-child{padding-bottom:0}.tensorsite-partner-detail__section:last-child::after,.tensorsite-partner-detail__section--secondary::after{content:none}.tensorsite-partner-detail__section--secondary{float:right;margin:0 15px;padding-top:120px;width:calc(25% - (30px))}@media only screen and (max-width: 1279px){.tensorsite-partner-detail__section--secondary{padding-top:100px;width:calc(33.33333% - 30px)}}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section--secondary{float:left;margin:0;padding:0 15px 60px;width:100%}.tensorsite-partner-detail__section--secondary::after{content:''}}@media only screen and (max-width: 767px){.tensorsite-partner-detail__section--secondary{padding:0 15px 60px}}.tensorsite-partner-detail__section--secondary .tensorsite-list+.tensorsite-list{margin-top:30px}.tensorsite-partner-detail__section--links .tensorsite-partner-detail__section-inner .tensorsite-content:first-child,.tensorsite-partner-detail__section--links .tensorsite-partner-detail__section-inner .tensorsite-content+.tensorsite-content{padding-top:0}.tensorsite-partner-detail__section--lists .tensorsite-partner-detail__section-inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:0}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section--lists .tensorsite-partner-detail__section-inner{padding:0 15px}}.tensorsite-partner-detail__section--lists .tensorsite-partner-detail__section-inner .tensorsite-list{flex:0 0 calc(50% - (30px / 2));margin-bottom:30px}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section--lists .tensorsite-partner-detail__section-inner .tensorsite-list{flex:0 0 100%}}.tensorsite-partner-detail__section--text .tensorsite-content__image-wrapper{background-position:center;background-size:cover;margin:0 auto 30px;padding-top:56.75%;width:100%}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section--text .tensorsite-content__image-wrapper{width:calc(100% - 30px)}}.tensorsite-partner-detail__section .tensorsite-content{padding-left:0;padding-right:0}@media only screen and (max-width: 1000px){.tensorsite-partner-detail__section .tensorsite-content{padding-left:15px;padding-right:15px}}.tensorsite-partner-detail .tensorsite-list{font-size:14px;line-height:22px}.tensorsite-partner-detail .tensorsite-list__description p:last-child,.tensorsite-partner-detail .tensorsite-list__item:last-child{margin-bottom:0}.tensorsite-partner-detail-hero{padding:70px 0}.tensorsite-partner-detail-hero .tensorsite-container{display:flex;justify-content:space-between;margin:0 auto;max-width:1420px;padding:0 40px}@media only screen and (max-width: 1000px){.tensorsite-partner-detail-hero .tensorsite-container{flex-wrap:wrap}}@media only screen and (max-width: 767px){.tensorsite-partner-detail-hero .tensorsite-container{padding:0 20px}}.tensorsite-partner-detail-hero__main{display:flex;margin-left:calc(8.33333% + (30px / 2));margin-right:15px;width:calc(58.33333% - 30px)}@media only screen and (max-width: 1279px){.tensorsite-partner-detail-hero__main{margin-left:15px;width:calc(66.66667% + 30px)}}@media only screen and (max-width: 1000px){.tensorsite-partner-detail-hero__main{flex-wrap:wrap;margin-left:0;margin-right:0;width:100%}}@media only screen and (max-width: 767px){.tensorsite-partner-detail-hero__main{padding:0 15px}}.tensorsite-partner-detail-hero__image{display:flex;flex:0 0 50%;flex-direction:column;justify-content:center;padding-right:50px}.tensorsite-partner-detail-hero__image-wrapper{display:flex;flex-direction:column;height:155px;justify-content:center}.tensorsite-partner-detail-hero__image img{display:block;margin-right:auto;max-height:100%;max-width:252px}@media only screen and (max-width: 1000px){.tensorsite-partner-detail-hero__image{flex:0 0 100%;flex-direction:row;margin-bottom:26px;padding-right:0}.tensorsite-partner-detail-hero__image-wrapper{height:auto;margin:0 auto;max-height:100px;max-width:300px}.tensorsite-partner-detail-hero__image img{margin:0 auto}}.tensorsite-partner-detail-hero__content{padding:30px 0 30px 50px;position:relative}.tensorsite-partner-detail-hero__content::before{background:#dadada;content:'';height:100%;left:0;position:absolute;top:0;width:1px}@media only screen and (min-width: 768px){.tensorsite-partner-detail-hero__content .tensorsite-content{padding-left:0;padding-right:0}}.tensorsite-partner-detail-hero__content .tensorsite-content__subtitle{font-family:"Google Sans",sans-serif;font-size:16px;font-weight:700;line-height:26px}@media only screen and (max-width: 1279px){.tensorsite-partner-detail-hero__content{padding-left:30px;padding-right:30px}}@media only screen and (max-width: 1000px){.tensorsite-partner-detail-hero__content{flex:0 0 100%;padding:0;text-align:center}.tensorsite-partner-detail-hero__content::before{display:block;height:1px;margin:0 auto;position:relative;width:30%}.tensorsite-partner-detail-hero__content .tensorsite-content__subtitle{align-self:center}}.tensorsite-partner-detail-hero__secondary{flex:0 0 auto;margin:0 15px;padding:30px 0;width:calc(25% - (30px))}@media only screen and (max-width: 1279px){.tensorsite-partner-detail-hero__secondary{width:calc(33.33333% - 30px)}}@media only screen and (max-width: 1000px){.tensorsite-partner-detail-hero__secondary{margin:0 auto;max-width:100%;padding:0 15px;width:auto}}@media only screen and (max-width: 767px){.tensorsite-partner-detail-hero__secondary{padding:30px 15px 0}}.tensorsite-partner-detail-hero__secondary .tensorsite-list{font-size:14px;line-height:22px;background:#f5f6f7}.tensorsite-partner-detail-hero__secondary .tensorsite-list__description p:last-child,.tensorsite-partner-detail-hero__secondary .tensorsite-list__item:last-child{margin-bottom:0}.tensorsite-side-side .tensorsite-container{margin:0 auto;max-width:1420px;padding:80px 40px}@media only screen and (max-width: 767px){.tensorsite-side-side .tensorsite-container{padding:80px 20px}}.tensorsite-side-side--condensed-bottom .tensorsite-container{padding-bottom:60px}.tensorsite-side-side--no-bottom .tensorsite-container{padding-bottom:0}.tensorsite-side-side .tensorsite-content{padding-left:0;padding-right:0}@media only screen and (max-width: 767px){.tensorsite-side-side .tensorsite-content{padding:26px 0}}.tensorsite-side-side .tensorsite-content p{margin:10px 0}.tensorsite-side-side .tensorsite-content__title{margin-bottom:24px}.tensorsite-side-side .tensorsite-content__image-wrapper{background-position:center;background-size:cover;border-radius:10px;height:100%}@media only screen and (max-width: 1000px){.tensorsite-side-side .tensorsite-content__image-wrapper{height:300px;margin:0}}.tensorsite-side-side--gray{background-color:#f5f6f7}.tensorsite-side-side--multi-partial .tensorsite-side-side-wrapper{justify-content:space-between}@media only screen and (max-width: 767px){.tensorsite-side-side--multi-partial .tensorsite-side-side-wrapper{display:block}}@media only screen and (min-width: 768px){.tensorsite-side-side--multi-partial .tensorsite-side-side-wrapper .tensorsite-side-side__secondary-section{margin-top:15px}}@media only screen and (max-width: 767px){.tensorsite-side-side--multi-partial .tensorsite-side-side-wrapper .tensorsite-side-side__secondary-section{border-top:1px solid #dadada;margin-top:50px;padding-top:50px}}.tensorsite-side-side--multi-partial .tensorsite-content{height:auto;padding-left:0;padding-right:0}.tensorsite-side-side--multi-partial .tensorsite-content__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px;margin-bottom:0}.tensorsite-side-side--multi-partial .tensorsite-card{flex-basis:100%;margin-left:0;margin-right:0}@media only screen and (min-width: 768px){.tensorsite-side-side--multi-partial .tensorsite-card{max-width:100%}}@media only screen and (max-width: 767px){.tensorsite-side-side--multi-partial .tensorsite-card{max-width:100%}}.tensorsite-side-side--multi-partial .tensorsite-card .tensorsite-content{padding:26px 30px}.tensorsite-side-side--multi-partial .tensorsite-card .tensorsite-content__image-wrapper{border-radius:10px 10px 0 0;height:auto}.tensorsite-side-side--multi-partial .tensorsite-list--no-background .tensorsite-list__title{font-family:"Google Sans",sans-serif;font-size:24px;font-weight:700;line-height:32px}@media only screen and (max-width: 1279px){.tensorsite-side-side--centered .tensorsite-side-side__main-section,.tensorsite-side-side--centered .tensorsite-side-side__secondary-section{flex-basis:calc(41.66667% - 30px);max-width:calc(41.66667% - 30px)}}@media only screen and (max-width: 1000px){.tensorsite-side-side--centered .tensorsite-side-side__main-section,.tensorsite-side-side--centered .tensorsite-side-side__secondary-section{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}}.tensorsite-side-side--centered .tensorsite-side-side__main-section{margin-left:calc(4.16667% + (30px / 2))}@media only screen and (max-width: 1000px){.tensorsite-side-side--centered .tensorsite-side-side__main-section{margin-left:15px}}.tensorsite-side-side--centered .tensorsite-side-side__secondary-section{margin-right:calc(4.16667% + (30px / 2))}@media only screen and (max-width: 1000px){.tensorsite-side-side--centered .tensorsite-side-side__secondary-section{margin-right:15px}}.tensorsite-side-side--centered .tensorsite-side-side-wrapper--reverse .tensorsite-side-side__main-section{margin-right:calc(4.16667% + (30px / 2))}@media only screen and (max-width: 1000px){.tensorsite-side-side--centered .tensorsite-side-side-wrapper--reverse .tensorsite-side-side__main-section{margin-right:15px}}.tensorsite-side-side--centered .tensorsite-side-side-wrapper--reverse .tensorsite-side-side__secondary-section{margin-left:calc(4.16667% + (30px / 2))}@media only screen and (max-width: 1000px){.tensorsite-side-side--centered .tensorsite-side-side-wrapper--reverse .tensorsite-side-side__secondary-section{margin-left:15px}}.tensorsite-side-side-wrapper{display:flex;flex:1 1 auto;flex-wrap:wrap;justify-content:space-between}.tensorsite-side-side-wrapper--reverse{flex-direction:row-reverse}.tensorsite-side-side-wrapper .tensorsite-side-side__secondary-section{margin-left:calc(8.33333% + (30px / 2))}@media only screen and (max-width: 1000px){.tensorsite-side-side-wrapper .tensorsite-side-side__secondary-section{margin-left:15px}}.tensorsite-side-side__main-section,.tensorsite-side-side__secondary-section{flex-basis:calc(41.66667% - 30px);margin:15px;max-width:calc(41.66667% - 30px);z-index:1}@media only screen and (max-width: 1000px){.tensorsite-side-side__main-section,.tensorsite-side-side__secondary-section{flex-basis:calc(100% - 30px);max-width:calc(100% - 30px)}}.tensorsite-side-side__main-section{margin-left:calc(8.33333% + (30px / 2));margin-right:15px}@media only screen and (max-width: 1279px){.tensorsite-side-side__main-section{flex-basis:calc(50% - 30px);margin-left:15px;max-width:calc(50% - 30px)}}@media only screen and (max-width: 1000px){.tensorsite-side-side__main-section{flex-basis:calc(100% - 30px);margin-left:15px;max-width:calc(100% - 30px)}}.tensorsite-side-side__main-section .tensorsite-content .tensorsite-content__description{margin-bottom:24px}.tensorsite-side-side__main-section .tensorsite-content .tensorsite-content__description:last-child{margin-bottom:0}.tensorsite-side-side__text-wrapper--white-bg{background-color:#fff;border:1px #ccc solid;border-radius:10px;flex-basis:calc(40% - 30px);margin-bottom:26px;padding:0}@media only screen and (max-width: 1000px){.tensorsite-side-side__text-wrapper--white-bg{flex-basis:calc(100% - 30px)}}.tensorsite-side-side__text-wrapper--white-bg .tensorsite-content{padding:40px}.tensorsite-side-side__text-wrapper--white-bg .tensorsite-content__description{margin-bottom:24px}.tensorsite-side-side__text-wrapper--white-bg .tensorsite-content__description strong{color:#425066}@media only screen and (min-width: 1001px){.tensorsite-side-side__text-wrapper--short{margin-top:140px}}.tensorsite-side-side--why-bg{position:relative}.tensorsite-side-side--why-bg::before,.tensorsite-side-side--why-bg::after{background:#f5f6f7;content:'';position:absolute;width:calc((100vw - 1794px) / 2)}.tensorsite-side-side--why-bg::before{bottom:-411px;left:50%;top:-643px;-webkit-transform:translateX(-100%) translateX(-897px);transform:translateX(-100%) translateX(-897px)}.tensorsite-side-side--why-bg::after{bottom:-751px;left:50%;top:284px;-webkit-transform:translateX(896px);transform:translateX(896px)}.tensorsite-side-side--why-bg .tensorsite-side-side__background{background:url(/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/why/whytf-bg.svg) center/contain no-repeat;content:'';height:1932px;left:50%;position:absolute;top:60%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);width:1794px;z-index:-1}.tensorsite-step{margin:0 auto;max-width:1140px}@media only screen and (min-width: 768px){.tensorsite-step{padding:0 180px}}@media only screen and (max-width: 1279px){.tensorsite-step{flex-direction:column;padding:0 100px}}@media only screen and (max-width: 1279px) and (-ms-high-contrast: none), only screen and (max-width: 1279px) and (-ms-high-contrast: active){.tensorsite-step{display:block}}@media only screen and (max-width: 767px){.tensorsite-step{padding:35px 35px 0}}.tensorsite-step__title{color:#425066}.tensorsite-step .tensorsite-container{padding:0}.tensorsite-step .tensorsite-group__divider{margin:0 auto;width:100%}@media only screen and (max-width: 1000px){.tensorsite-tab-group .tensorsite-container{padding:0;width:100%}}.tensorsite-tab-group .tensorsite-button-tab{max-width:1090px}.tensorsite-tab-group .tensorsite-top-tab{max-width:1200px;min-height:580px}@media only screen and (max-width: 1000px){.tensorsite-tab-group .tensorsite-top-tab__tabs::after{left:85px}}@media only screen and (max-width: 767px){.tensorsite-tab-group .tensorsite-top-tab__tabs::after{left:45px}}@media only screen and (max-width: 1000px){.tensorsite-tab-group .tensorsite-top-tab__tabs{padding:0 67px}}@media only screen and (max-width: 767px){.tensorsite-tab-group .tensorsite-top-tab__tabs{padding:0 27px}}@media only screen and (-ms-high-contrast: none), (-ms-high-contrast: active){.tensorsite-tab-group .tensorsite-top-tab__content--inner{display:block;padding:0 30px;width:30%}}.tensorsite-tab-group--text-heavy .tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text{flex-basis:calc(60% - 30px)}@media only screen and (max-width: 1000px){.tensorsite-tab-group--text-heavy .tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text{order:2}}.tensorsite-tab-group--text-heavy .tensorsite-top-tab__content--inner .tensorsite-top-tab__image{flex-basis:calc(40% - 30px)}@media only screen and (max-width: 1000px){.tensorsite-tab-group--text-heavy .tensorsite-top-tab__content--inner .tensorsite-top-tab__content__text,.tensorsite-tab-group--text-heavy .tensorsite-top-tab__content--inner .tensorsite-top-tab__image{flex-basis:calc(100% - 30px)}}.tensorsite-tab-group--equal-tab-width .tensorsite-top-tab__tabs label{flex-basis:100%}.tensorsite-tab-group--extra-margin-bottom{margin-bottom:160px}@media only screen and (max-width: 1279px){.tensorsite-tab-group--extra-margin-bottom{margin-bottom:80px}}.tensorsite-diagram{opacity:0;position:relative}.tensorsite-diagram--loaded{opacity:1}.tensorsite-diagram .tensorsite-content__cta{margin-top:16px;font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:19.6px}.tensorsite-diagram .tensorsite-content__cta-icon span:before,.tensorsite-diagram .tensorsite-content__cta-icon span:after{height:14px;width:14px}.tensorsite-diagram__dimmer{background-color:rgba(255,255,255,0.5);height:100%;position:absolute;width:100%;z-index:-1}.tensorsite-diagram__dimmer.active{z-index:2}.tensorsite-diagram__dimmer.scroll-active{cursor:ew-resize}.tensorsite-diagram__scrollbox{box-sizing:content-box;overflow-x:auto}.tensorsite-diagram__scrollbox.grabbing *{cursor:grabbing;cursor:-webkit-grabbing}.tensorsite-diagram__overlay{background:linear-gradient(90deg, rgba(255,255,255,0), #fff);height:calc(100% - 15px);opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity 500ms;width:20vw;z-index:4}.tensorsite-diagram__overlay.active{opacity:1}.tensorsite-diagram .tensorsite-container{display:flex;position:relative}.tensorsite-diagram .tensorsite-container.scroll-active{cursor:ew-resize}.tensorsite-diagram .tensorsite-container.scroll-active .last-section{padding-right:50px}.tensorsite-diagram p{margin:0}.tensorsite-diagram__section{box-sizing:border-box;display:inline-block}.tensorsite-diagram__section hr{background:#dadce0;border:0;height:1px;margin:16px auto;width:calc(100% - (16px * 2))}.tensorsite-diagram__section.first-section hr,.tensorsite-diagram__section.last-section hr{width:calc(100% - (16px))}.tensorsite-diagram__section.first-section hr{margin-left:0}.tensorsite-diagram__section.last-section hr{margin-right:0}.tensorsite-diagram__title{position:relative;text-align:center;font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:18px}.tensorsite-diagram__title.active{z-index:3}.tensorsite-diagram__cols{display:flex}.tensorsite-diagram__col{align-items:center;display:flex;flex-direction:column;padding:0 16px}.tensorsite-diagram__col.first-col{padding-left:0}.tensorsite-diagram__col.last-col{padding-right:0}.tensorsite-diagram__nodes{align-items:center;display:flex;flex-direction:column;justify-content:center;margin-bottom:40px;min-height:252px}.tensorsite-diagram__product.active{z-index:3}.tensorsite-diagram__product .tensorsite-content__cta{align-self:center;margin-top:0;max-width:160px;min-height:154px;text-align:center}.tensorsite-diagram__product .cta-image{align-items:center;border:1px solid #e3e5e8;border-radius:50%;display:flex;height:100px;justify-content:center;margin:0 auto;margin-bottom:16px;width:100px}.tensorsite-diagram__product .cta-image img{max-height:64px;max-width:64px}.tensorsite-diagram .box{background:#fff;border:1px solid transparent;border-radius:6px;box-shadow:0px 2px 8px rgba(66,80,102,0.16);box-sizing:border-box;cursor:pointer;height:52px;margin:16px 0;min-width:196px;outline:none;overflow:hidden;position:relative;text-align:center;transition:all ease-in-out 0.2s;width:100%;z-index:1}.tensorsite-diagram .box .position{transition:all ease-in-out 0.2s}.tensorsite-diagram .box:hover,.tensorsite-diagram .box:focus,.tensorsite-diagram .box.enlarged{box-shadow:0px 2px 12px rgba(66,80,102,0.24)}.tensorsite-diagram .box:hover .position,.tensorsite-diagram .box:focus .position,.tensorsite-diagram .box.enlarged .position{color:#ff6f00}.tensorsite-diagram .box.enlarged,.tensorsite-diagram .box:focus{border:1px solid #ff6f00}.tensorsite-diagram .position{font-family:"Google Sans",sans-serif;font-size:14px;font-weight:700;line-height:18px;margin-bottom:16px}.tensorsite-diagram .additionalInfo{font-size:14px;line-height:22px}.tensorsite-diagram .information{padding:16px}.tfx-diagram-arrow{display:none}.tfx-arrow--up{-webkit-transform:translateY(50%) translateX(-3%);transform:translateY(50%) translateX(-3%)}.tfx-arrow--right{-webkit-transform:translateX(-64%) translateY(2%);transform:translateX(-64%) translateY(2%)}.tfx-arrow--down{-webkit-transform:translateY(-50%) translateX(3%);transform:translateY(-50%) translateX(3%)}.jsplumb-draggable{pointer-events:none} </style> <div class="devsite-banner devsite-banner-announcement"> <div class="devsite-banner-message"> <div class="devsite-banner-message-text"> Join the SIG TFX-Addons community and help make TFX even better! <button onclick="location.href='https://web.archive.org/web/20210414163336/http://goo.gle/tfx-addons-group'" type="button" class="gc-analytics-event" data-category="Announcement" data-label="SIG TFX-Addons">Join SIG TFX-Addons</button> </div> </div> </div> <div class="devsite-article-meta" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/" 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="TensorFlow"> TensorFlow </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/learn" 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=""> Learn </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://web.archive.org/web/20210414163336/https://www.tensorflow.org/tfx" 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="TFX"> For Production </a> </li> </ul> </div> <devsite-toc class="devsite-nav" devsite-toc-embedded disabled> </devsite-toc> <div class="devsite-article-body clearfix devsite-no-page-title"> <div class="wrapper"> <div class="tensorsite-hero tensorsite-hero--river "> <div class="tensorsite-hero__side tensorsite-hero__side--left"></div> <div class="tensorsite-hero__side tensorsite-hero__side--right"></div> <div class="tensorsite-hero__side tensorsite-hero__side--left-lower"></div> <div class="tensorsite-hero__content"> <div class="tensorsite-content "> <h1 class="tensorsite-content__title " id="tensorflow-extended-tfx-is-an-end-to-end-platform-for-deploying-production-ml-pipelines" data-text=" TensorFlow Extended (TFX) is an end-to-end platform for deploying production ML pipelines "> TensorFlow Extended (TFX) is an end-to-end platform for deploying production ML pipelines </h1> <div class="tensorsite-content__description"> <p>When you’re ready to move your models from research to production, use TFX to create and manage a production pipeline.</p> </div> </div> <div class="tensorsite-hero__buttons tensorsite-hero__buttons--fixed-width"> <a class="tensorsite-hero__button tensorsite-button" href="https://web.archive.org/web/20210414163336/https://colab.research.google.com/github/tensorflow/tfx/blob/master/docs/tutorials/tfx/components_keras.ipynb" target="_blank" rel="noopener"> Run Colab </a> <p class="tensorsite-hero__button-subtitle">This interactive tutorial walks through each built-in component of TFX.</p> <a class="tensorsite-hero__button tensorsite-button" href="/web/20210414163336/https://www.tensorflow.org/tfx/tutorials"> See tutorials </a> <p class="tensorsite-hero__button-subtitle">Tutorials show you how to use TFX with complete, end-to-end examples.</p> <a class="tensorsite-hero__button tensorsite-button" href="/web/20210414163336/https://www.tensorflow.org/tfx/guide"> See the guide </a> <p class="tensorsite-hero__button-subtitle">Guides explain the concepts and components of TFX.</p> </div> </div> <div class="tensorsite-hero__image"> <img src="/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/learn/tfx-hero.svg" alt=""> </div> </div> <div class="tensorsite-column-list"> <div class="tensorsite-column-list__intro"> <h3 class="tensorsite-column-list__title" id="how-it-works" data-text=" How it works "> How it works </h3> <div class="tensorsite-column-list__description"> <p>A TFX pipeline is a sequence of components that implement an ML pipeline which is specifically designed for scalable, high-performance machine learning tasks. Components are built using TFX libraries which can also be used individually.</p> </div> </div> </div><devsite-iframe><iframe src="/web/20210414163336if_/https://www.tensorflow.org/tfx/index_b842463b3c40a21deef352a3d40545416469c7fbee84c6b040fc4c4a670d9eba.frame" class="framebox inherit-locale " allowfullscreen is-upgraded></iframe></devsite-iframe> <section class="tensorsite-group tensorsite-group--logos tensorsite-group--logos-wide" data-carousel-moving="8,4,2" data-carousel-movement="1,1,1"> <div class="tensorsite-container "> <div class="tensorsite-group__header"> <div class="tensorsite-content "> <h2 class="tensorsite-content__title tensorsite-content__title--grow" id="how-companies-are-using-tfx" data-text=" How companies are using TFX "> How companies are using TFX </h2> <div class="tensorsite-content__cta-wrapper "> <a href="/web/20210414163336/https://www.tensorflow.org/about/case-studies" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--internal "> See case studies&nbsp;<span>&nbsp;</span></a> </div> </div> </div> <div class="tensorsite-group__inner"> <div class="tensorsite-block "> <a href="https://web.archive.org/web/20210414163336/https://labs.spotify.com/2020/01/16/for-your-ears-only-personalizing-spotify-home-with-machine-learning/" target="_blank" rel="noopener" class="tensorsite-block__image" style="background-image: url('/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/home/logos/logo_train_64px_spotify.png')"> <span class="hidden-text">Spotify</span> </a> </div><div class="tensorsite-block "> <a href="https://web.archive.org/web/20210414163336/https://blog.tensorflow.org/2020/04/how-airbus-detects-anomalies-iss-telemetry-data-tfx.html" class="tensorsite-block__image" style="background-image: url('/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/home/logos/logo_train_64px_airbus.png')"> <span class="hidden-text">Airbus</span> </a> </div><div class="tensorsite-block "> <a href="https://web.archive.org/web/20210414163336/https://security.googleblog.com/2020/02/improving-malicious-document-detection.html" target="_blank" rel="noopener" class="tensorsite-block__image" style="background-image: url('/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/home/logos/logo_train_64px_gmail.png')"> <span class="hidden-text">Gmail</span> </a> </div><div class="tensorsite-block "> <a href="https://web.archive.org/web/20210414163336/https://blog.tensorflow.org/2021/02/how-openx-trains-and-serves-for-million-queries-per-second.html" class="tensorsite-block__image" style="background-image: url('/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/home/logos/logo_openx.png')"> <span class="hidden-text">OpenX</span> </a> </div> </div> </div> <div class="tensorsite-group__divider"></div> </section> <section class="tensorsite-group tensorsite-group--3up "> <div class="tensorsite-container "> <div class="tensorsite-group__header"> <div class="tensorsite-content "> <h2 class="tensorsite-content__title " id="solutions-to-common-problems" data-text=" Solutions to common problems "> Solutions to common problems </h2> <div class="tensorsite-content__description"> <p>Explore step-by-step tutorials to help you with your projects.</p> </div> </div> </div> <div class="tensorsite-group__inner"> <div class="tensorsite-card tensorsite-card--clip "> <div class="tensorsite-content__image-wrapper"> <img class="tensorsite-content__image" src="/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/cards/tile_tensorflow_serving.jpg" alt=""/> </div> <div class="tensorsite-content tensorsite-content--under-image"> <div class="tensorsite-content__clip-bg"> <svg class="tensorsite-content__clip-shape" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 409 132"><path d="M71.2,3.2,0,44v88H409L92.3,1.8A24.1,24.1,0,0,0,71.2,3.2Z" fill="#fff"/></svg> </div> <div class="tensorsite-content__subtitle tensorsite-content__subtitle--thin "> Intermediate </div> <a class="tensorsite-content__title " href="/web/20210414163336/https://www.tensorflow.org/tfx/tutorials/serving/rest_simple"> Train and serve a TensorFlow model with TensorFlow Serving </a> <div class="tensorsite-content__description"> <p>This guide trains a neural network model to classify images of clothing, like sneakers and shirts, saves the trained model, and then serves it with TensorFlow Serving. The focus is on TensorFlow Serving, rather than the modeling and training in TensorFlow.</p> </div> </div> </div> <div class="tensorsite-card tensorsite-card--clip "> <div class="tensorsite-content__image-wrapper"> <img class="tensorsite-content__image" src="/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/cards/tfx_platform_pipelines.jpg" alt=""/> </div> <div class="tensorsite-content tensorsite-content--under-image"> <div class="tensorsite-content__clip-bg"> <svg class="tensorsite-content__clip-shape" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 409 132"><path d="M71.2,3.2,0,44v88H409L92.3,1.8A24.1,24.1,0,0,0,71.2,3.2Z" fill="#fff"/></svg> </div> <div class="tensorsite-content__subtitle tensorsite-content__subtitle--thin "> Intermediate </div> <a class="tensorsite-content__title " href="/web/20210414163336/https://www.tensorflow.org/tfx/tutorials/tfx/cloud-ai-platform-pipelines"> Create TFX pipelines hosted on Google Cloud </a> <div class="tensorsite-content__description"> <p>An introduction to TensorFlow Extended (TFX) and Cloud AI Platform Pipelines to create your own machine learning pipelines on Google Cloud. Follow a typical ML development process, starting by examining the dataset, and ending up with a complete working pipeline.</p> </div> </div> </div> <div class="tensorsite-card tensorsite-card--clip "> <div class="tensorsite-content__image-wrapper"> <img class="tensorsite-content__image" src="/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/cards/tfx_for_mobile.jpg" alt=""/> </div> <div class="tensorsite-content tensorsite-content--under-image"> <div class="tensorsite-content__clip-bg"> <svg class="tensorsite-content__clip-shape" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 409 132"><path d="M71.2,3.2,0,44v88H409L92.3,1.8A24.1,24.1,0,0,0,71.2,3.2Z" fill="#fff"/></svg> </div> <div class="tensorsite-content__subtitle tensorsite-content__subtitle--thin "> Intermediate </div> <a class="tensorsite-content__title " href="/web/20210414163336/https://www.tensorflow.org/tfx/tutorials/tfx/tfx_for_mobile"> Use TFX with TensorFlow Lite for on-device inference </a> <div class="tensorsite-content__description"> <p>Learn how TensorFlow Extended (TFX) can create and evaluate machine learning models that will be deployed on-device. TFX now provides native support for TFLite, which makes it possible to perform highly efficient inference on mobile devices.</p> </div> </div> </div> </div> </div> <div class="tensorsite-group__divider"></div> </section> <section class="tensorsite-group tensorsite-group--4up "> <div class="tensorsite-container "> <div class="tensorsite-group__header"> <div class="tensorsite-content "> <h2 class="tensorsite-content__title " id="news-announcements" data-text=" News &amp; announcements "> News &amp; announcements </h2> <div class="tensorsite-content__description"> <p>Check out our <a href="https://web.archive.org/web/20210414163336/https://blog.tensorflow.org/search?label=TFX&amp;max-results=20">blog</a> and <a href="https://web.archive.org/web/20210414163336/https://goo.gle/tfx-youtube" target="_blank" rel="noopener">YouTube playlist</a> for additional TFX content, <br> and subscribe to our monthly TensorFlow newsletter to get the <br> latest announcements sent directly to your inbox.</p> </div> <div class="tensorsite-content__cta-wrapper "> <a href="https://web.archive.org/web/20210414163336/https://services.google.com/fb/forms/tensorflow/" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> Sign up&nbsp;<span>&nbsp;</span></a> </div> </div> </div> <div class="tensorsite-group__inner"> <div class="tensorsite-card "> <div class="tensorsite-content__image-wrapper"> <img class="tensorsite-content__image" src="/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/cards/tile_logo_openx.png" alt=""/> </div> <div class="tensorsite-content tensorsite-content--under-image"> <div class="tensorsite-content__subtitle tensorsite-content__subtitle--thin tensorsite-content__subtitle-icon tensorsite-icon--blog "> February 15, 2021 <span>&nbsp;</span> </div> <a class="tensorsite-content__title " href="https://web.archive.org/web/20210414163336/https://blog.tensorflow.org/2021/02/how-openx-trains-and-serves-for-million-queries-per-second.html"> How OpenX Trains and Serves for a Million Queries per Second in under 15 Milliseconds </a> <div class="tensorsite-content__description"> <p>OpenX leveraged several products in the TensorFlow ecosystem &amp; Google Cloud, including TF Serving and Kubeflow Pipelines, to build a service that prioritizes traffic to demand side platforms in the adtech space.</p> </div> <div class="tensorsite-content__cta-wrapper "> <a href="https://web.archive.org/web/20210414163336/https://blog.tensorflow.org/2021/02/how-openx-trains-and-serves-for-million-queries-per-second.html" tabindex="-1" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--internal "> Read the blog&nbsp;<span>&nbsp;</span></a> </div> </div> </div> <div class="tensorsite-card "> <div class="tensorsite-content__image-wrapper"> <img class="tensorsite-content__image" src="/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/cards/tile_ml_metadata.jpg" alt=""/> </div> <div class="tensorsite-content tensorsite-content--under-image"> <div class="tensorsite-content__subtitle tensorsite-content__subtitle--thin tensorsite-content__subtitle-icon tensorsite-icon--blog "> January 8, 2021 <span>&nbsp;</span> </div> <a class="tensorsite-content__title " href="https://web.archive.org/web/20210414163336/https://blog.tensorflow.org/2021/01/ml-metadata-version-control-for-ml.html"> ML Metadata: Version Control for ML </a> <div class="tensorsite-content__description"> <p>The complexity of ML code and artifacts like models, datasets, and much more requires version control. That’s why we built Machine Learning Metadata (MLMD), a library to track the full lineage of your entire ML workflow.</p> </div> <div class="tensorsite-content__cta-wrapper "> <a href="https://web.archive.org/web/20210414163336/https://blog.tensorflow.org/2021/01/ml-metadata-version-control-for-ml.html" tabindex="-1" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--internal "> Read the blog&nbsp;<span>&nbsp;</span></a> </div> </div> </div> <div class="tensorsite-card tensorsite-card--video "> <button class="tensorsite-card__href devsite-dialog-button" data-modal-dialog-id="video-YeuvR6m6ACQ" aria-label="Watch the video"></button> <div class="tensorsite-content__image-wrapper"> <img class="tensorsite-content__image" src="/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/cards/tile_ml-production-deployment.jpg" alt=""/> <svg class="tensorsite-content__image__play-button" width="96" height="96" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true"><defs><path d="M48 0C21.504 0 0 21.504 0 48s21.504 48 48 48 48-21.504 48-48S74.496 0 48 0z" id="b"/><filter x="-37.5%" y="-37.5%" width="175%" height="175%" filterunits="objectBoundingBox" id="a"><feoffset in="SourceAlpha" result="shadowOffsetOuter1"/><fegaussianblur stddeviation="12" in="shadowOffsetOuter1" result="shadowBlurOuter1"/><fecolormatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0" in="shadowBlurOuter1"/></filter><lineargradient x1="60.966%" y1="29.2%" x2="36.71%" y2="69.385%" id="c"><stop stop-color="#FF9100" offset="0%"/><stop stop-color="#FF6F00" offset="100%"/></lineargradient></defs><g fill-rule="nonzero" fill="none"><use fill="#000" filter="url(#a)" xlink:href="/web/20210414163336im_/https://www.tensorflow.org/tfx#b"/><use fill="#FFF" xlink:href="/web/20210414163336im_/https://www.tensorflow.org/tfx#b"/><path fill="url(#c)" d="M41 63V33l20 15z"/></g></svg> </div> <div class="tensorsite-content tensorsite-content--under-image"> <div class="tensorsite-content__subtitle tensorsite-content__subtitle--thin tensorsite-content__subtitle-icon tensorsite-icon--youtube "> December 3, 2020 <span>&nbsp;</span> </div> <a class="tensorsite-content__title "> ML engineering for production ML deployments with TFX </a> <div class="tensorsite-content__description"> <p>In this update we’ll cover TFX basics and highlight what's new this year to help you get started. We'll also show you a hands-on look at how to put together a production pipeline system with TFX.</p> </div> <div class="tensorsite-content__cta-wrapper "> <a tabindex="-1" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--video " data-modal-dialog-id="video-YeuvR6m6ACQ" aria-label="Watch the video"> Watch the video&nbsp;<span>&nbsp;</span></a> </div> </div> </div> <div id="video-YeuvR6m6ACQ" class="devsite-dialog tensorsite-video-modal"> <div class="devsite-dialog-contents"> <iframe width="560" height="315" src="https://web.archive.org/web/20210414163336if_/https://www.youtube.com/embed/YeuvR6m6ACQ?rel=0&amp;showinfo=0&amp;playsinline=1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </div> <div class="devsite-dialog-buttons"> <button class="devsite-dialog-close">Cancel</button> <a href="#" class="button button-white">Continue</a> </div> </div> <div class="tensorsite-card "> <div class="tensorsite-content__image-wrapper"> <img class="tensorsite-content__image" src="/web/20210414163336im_/https://www.tensorflow.org/site-assets/images/marketing/cards/neural-structure-learning-in-tfx.png" alt=""/> </div> <div class="tensorsite-content tensorsite-content--under-image"> <div class="tensorsite-content__subtitle tensorsite-content__subtitle--thin tensorsite-content__subtitle-icon tensorsite-icon--blog "> October 9, 2020 <span>&nbsp;</span> </div> <a class="tensorsite-content__title " href="https://web.archive.org/web/20210414163336/https://blog.tensorflow.org/2020/10/neural-structured-learning-in-tfx.html"> Neural Structured Learning in TFX </a> <div class="tensorsite-content__description"> <p>Neural structured learning can be used to train neural networks with structured signals. Learn how to build a graph-regularized model with NSL in TFX using custom components and try it yourself in an interactive Colab.</p> </div> <div class="tensorsite-content__cta-wrapper "> <a href="https://web.archive.org/web/20210414163336/https://blog.tensorflow.org/2020/10/neural-structured-learning-in-tfx.html" tabindex="-1" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--internal "> Read the blog&nbsp;<span>&nbsp;</span></a> </div> </div> </div> </div> </div> <div class="tensorsite-group__divider"></div> </section> <section class="tensorsite-group tensorsite-group--3up-small "> <div class="tensorsite-container "> <div class="tensorsite-group__header"> <div class="tensorsite-content "> <h2 class="tensorsite-content__title " id="community-participation" data-text=" Community participation "> Community participation </h2> <div class="tensorsite-content__description"> <p>See more ways to participate in the TensorFlow community.</p> </div> <div class="tensorsite-content__cta-wrapper "> <a href="/web/20210414163336/https://www.tensorflow.org/community" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--internal "> Community&nbsp;<span>&nbsp;</span></a> </div> </div> </div> <div class="tensorsite-group__inner"> <div class="tensorsite-card "> <div class="tensorsite-content "> <a class="tensorsite-content__title tensorsite-icon tensorsite-icon--github tensorsite-content__title--grow" href="https://web.archive.org/web/20210414163336/https://github.com/google/ml-metadata" target="_blank" rel="noopener"> TFX on GitHub <span>&nbsp;</span> </a> <div class="tensorsite-content__cta-wrapper "> <a href="https://web.archive.org/web/20210414163336/https://github.com/google/ml-metadata" target="_blank" rel="noopener" tabindex="-1" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow ML Metadata&nbsp;<span>&nbsp;</span></a> <a href="https://web.archive.org/web/20210414163336/https://github.com/tensorflow/data-validation" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Data Validation&nbsp;<span>&nbsp;</span></a> <a href="https://web.archive.org/web/20210414163336/https://github.com/tensorflow/transform" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Transform&nbsp;<span>&nbsp;</span></a> <a href="https://web.archive.org/web/20210414163336/https://github.com/tensorflow/model-analysis" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Model Analysis&nbsp;<span>&nbsp;</span></a> <a href="https://web.archive.org/web/20210414163336/https://github.com/tensorflow/serving" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Serving&nbsp;<span>&nbsp;</span></a> </div> </div> </div> <div class="tensorsite-card "> <div class="tensorsite-content "> <a class="tensorsite-content__title tensorsite-icon tensorsite-icon--stackoverflow tensorsite-content__title--grow" href="https://web.archive.org/web/20210414163336/https://stackoverflow.com/questions/tagged/tensorflow-data-validation" target="_blank" rel="noopener"> Ask a question on Stack Overflow <span>&nbsp;</span> </a> <div class="tensorsite-content__cta-wrapper "> <a href="https://web.archive.org/web/20210414163336/https://stackoverflow.com/questions/tagged/tensorflow-data-validation" target="_blank" rel="noopener" tabindex="-1" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Data Validation&nbsp;<span>&nbsp;</span></a> <a href="https://web.archive.org/web/20210414163336/https://stackoverflow.com/questions/tagged/tensorflow-transform" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Transform&nbsp;<span>&nbsp;</span></a> <a href="https://web.archive.org/web/20210414163336/https://stackoverflow.com/questions/tagged/tensorflow-model-analysis" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Model Analysis&nbsp;<span>&nbsp;</span></a> <a href="https://web.archive.org/web/20210414163336/https://stackoverflow.com/questions/tagged/tensorflow-serving" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Serving&nbsp;<span>&nbsp;</span></a> </div> </div> </div> <div class="tensorsite-card "> <div class="tensorsite-content "> <a class="tensorsite-content__title tensorsite-icon tensorsite-icon--github tensorsite-content__title--grow" href="https://web.archive.org/web/20210414163336/https://github.com/google/ml-metadata/issues" target="_blank" rel="noopener"> Issues, bug reports, and feature requests <span>&nbsp;</span> </a> <div class="tensorsite-content__cta-wrapper "> <a href="https://web.archive.org/web/20210414163336/https://github.com/google/ml-metadata/issues" target="_blank" rel="noopener" tabindex="-1" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow ML Metadata&nbsp;<span>&nbsp;</span></a> <a href="https://web.archive.org/web/20210414163336/https://github.com/tensorflow/data-validation/issues" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Data Validation&nbsp;<span>&nbsp;</span></a> <a href="https://web.archive.org/web/20210414163336/https://github.com/tensorflow/transform/issues" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Transform&nbsp;<span>&nbsp;</span></a> <a href="https://web.archive.org/web/20210414163336/https://github.com/tensorflow/model-analysis/issues" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Model Analysis&nbsp;<span>&nbsp;</span></a> <a href="https://web.archive.org/web/20210414163336/https://github.com/tensorflow/serving/issues" target="_blank" rel="noopener" class="tensorsite-content__cta tensorsite-content__cta-icon tensorsite-icon--external "> TensorFlow Serving&nbsp;<span>&nbsp;</span></a> </div> </div> </div> <div class="tensorsite-card "> <div class="tensorsite-content "> <a class="tensorsite-content__title tensorsite-icon tensorsite-icon--group tensorsite-content__title--grow" href="https://web.archive.org/web/20210414163336/https://groups.google.com/a/tensorflow.org/forum/#!forum/tfx" target="_blank" rel="noopener"> Community discussion forum <span>&nbsp;</span> </a> </div> </div> <div class="tensorsite-card "> <div class="tensorsite-content "> <a class="tensorsite-content__title tensorsite-content__title--grow" href="https://web.archive.org/web/20210414163336/https://services.google.com/fb/forms/tensorflowcasestudy/" target="_blank" rel="noopener"> Share your TFX story </a> </div> </div> </div> </div> </section><section class="tensorsite-footer"> <div class="tensorsite-container tensorsite-footer__container"> <div class="tensorsite-footer__side tensorsite-footer__side--left"></div> <div class="tensorsite-footer__side tensorsite-footer__side--right"></div> <div class="tensorsite-footer__content"> <div class="tensorsite-content "> <h2 class="tensorsite-content__title tensorsite-content__title--grow" id="get-started-with-tensorflow-extended" data-text=" Get started with TensorFlow Extended "> Get started with TensorFlow Extended </h2> <div class="tensorsite-content__cta-wrapper "> <a href="/web/20210414163336/https://www.tensorflow.org/tfx/tutorials" class="tensorsite-content__button tensorsite-button tensorsite-button--white "> Explore tutorials</a> </div> </div> </div> </div> <div class="tensorsite-footer__lines"></div> </section> <footer></footer> </div> </div> </article> </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"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Stay connected</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210414163336/https://blog.tensorflow.org/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210414163336/https://github.com/tensorflow/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> GitHub </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210414163336/https://twitter.com/tensorflow" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Twitter </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210414163336/https://youtube.com/tensorflow" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> YouTube </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Support</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210414163336/https://github.com/tensorflow/tensorflow/issues" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)"> Issue tracker </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210414163336/https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)"> Release notes </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//web.archive.org/web/20210414163336/https://stackoverflow.com/questions/tagged/tensorflow" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)"> Stack Overflow </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210414163336/https://www.tensorflow.org/extras/tensorflow_brand_guidelines.pdf" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)"> Brand guidelines </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/web/20210414163336/https://www.tensorflow.org/about/bib" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)"> Cite TensorFlow </a> </li> </ul> </li> </ul> </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="//web.archive.org/web/20210414163336/https://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="//web.archive.org/web/20210414163336/https://policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link"> Privacy </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the TensorFlow monthly newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="//web.archive.org/web/20210414163336/https://services.google.com/fb/forms/tensorflow/" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link"> Subscribe </a> </li> </ul> <devsite-language-selector> <devsite-select class="devsite-language-selector-menu"> <select aria-label="Select your language preference." class="devsite-language-selector-select" name="language" track-name="click" track-type="languageSelector"> <option>Language</option> <option value="en" lang="en" track-metadata-original-language="en" track-metadata-selected-language="en" track-name="changed" track-type="languageSelector"> English </option> <option value="id" lang="id" track-metadata-original-language="en" track-metadata-selected-language="id" track-name="changed" track-type="languageSelector"> Bahasa Indonesia </option> <option value="de" lang="de" track-metadata-original-language="en" track-metadata-selected-language="de" track-name="changed" track-type="languageSelector"> Deutsch </option> <option value="es_419" lang="es_419" track-metadata-original-language="en" track-metadata-selected-language="es_419" track-name="changed" track-type="languageSelector"> Español – América Latina </option> <option value="fr" lang="fr" track-metadata-original-language="en" track-metadata-selected-language="fr" track-name="changed" track-type="languageSelector"> Français </option> <option value="it" lang="it" track-metadata-original-language="en" track-metadata-selected-language="it" track-name="changed" track-type="languageSelector"> Italiano </option> <option value="pl" lang="pl" track-metadata-original-language="en" track-metadata-selected-language="pl" track-name="changed" track-type="languageSelector"> Polski </option> <option value="pt_br" lang="pt_br" track-metadata-original-language="en" track-metadata-selected-language="pt_br" track-name="changed" track-type="languageSelector"> Português – Brasil </option> <option value="vi" lang="vi" track-metadata-original-language="en" track-metadata-selected-language="vi" track-name="changed" track-type="languageSelector"> Tiếng Việt </option> <option value="tr" lang="tr" track-metadata-original-language="en" track-metadata-selected-language="tr" track-name="changed" track-type="languageSelector"> Türkçe </option> <option value="ru" lang="ru" track-metadata-original-language="en" track-metadata-selected-language="ru" track-name="changed" track-type="languageSelector"> Русский </option> <option value="he" lang="he" track-metadata-original-language="en" track-metadata-selected-language="he" track-name="changed" track-type="languageSelector"> עברית&#39; </option> <option value="ar" lang="ar" track-metadata-original-language="en" track-metadata-selected-language="ar" track-name="changed" track-type="languageSelector"> العربيّة </option> <option value="fa" lang="fa" track-metadata-original-language="en" track-metadata-selected-language="fa" track-name="changed" track-type="languageSelector"> فارسی </option> <option value="hi" lang="hi" track-metadata-original-language="en" track-metadata-selected-language="hi" track-name="changed" track-type="languageSelector"> हिंदी </option> <option value="bn" lang="bn" track-metadata-original-language="en" track-metadata-selected-language="bn" track-name="changed" track-type="languageSelector"> বাংলা </option> <option value="th" lang="th" track-metadata-original-language="en" track-metadata-selected-language="th" track-name="changed" track-type="languageSelector"> ภาษาไทย </option> <option value="zh_cn" lang="zh_cn" track-metadata-original-language="en" track-metadata-selected-language="zh_cn" track-name="changed" track-type="languageSelector"> 中文 – 简体 </option> <option value="zh_tw" lang="zh_tw" track-metadata-original-language="en" track-metadata-selected-language="zh_tw" track-name="changed" track-type="languageSelector"> 中文 – 繁體 </option> <option value="ja" lang="ja" track-metadata-original-language="en" track-metadata-selected-language="ja" track-name="changed" track-type="languageSelector"> 日本語 </option> <option value="ko" lang="ko" track-metadata-original-language="en" track-metadata-selected-language="ko" track-name="changed" track-type="languageSelector"> 한국어 </option> </select> </devsite-select> </devsite-language-selector> </nav> </div> </devsite-footer-utility> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics enable-analytics-iframe> <script type="application/json" analytics>[{"gaid": "UA-69864048-1", "dimensions": {"dimension5": "en", "dimension12": false, "dimension6": "en", "dimension4": "TFX", "dimension3": false, "dimension1": "Signed out", "dimension8": null}, "metrics": {"ratings_count": "metric2", "ratings_value": "metric1"}}]</script> <script type="application/json" gtm>{"parameters": {"freeTrialEligibleUser": "False", "internalUser": "False", "language": {"machineTranslated": "False", "requested": "en", "served": "en"}, "pageType": "marketing", "projectName": "TFX", "scriptsafe": null, "signedIn": "False", "tenant": "tensorflow", "recommendations": {"sourcePage": "", "sourceType": 0, "sourceRank": 0, "sourceIdenticalDescriptions": 0, "sourceTitleWords": 0, "sourceDescriptionWords": 0, "experiment": ""}}, "tags": ["GTM-MXSL34P"]}</script> </devsite-analytics> <script nonce="9DK3GTjf2z6V89wDD6Ke3dctSFm7K+"> (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://web.archive.org/web/20210414163336/https://www.gstatic.com/devrel-devsite/prod/v611aa55c57477cd8cd7cf431e9c41501ac9b499722f27f5e58377ae7957507df/tensorflow/js/app_loader.js', '[15,"en",null,"/js/devsite_app_module.js","https://web.archive.org/web/20210414163336/https://www.gstatic.com/devrel-devsite/prod/v611aa55c57477cd8cd7cf431e9c41501ac9b499722f27f5e58377ae7957507df","https://web.archive.org/web/20210414163336/https://www.gstatic.com/devrel-devsite/prod/v611aa55c57477cd8cd7cf431e9c41501ac9b499722f27f5e58377ae7957507df/tensorflow","https://web.archive.org/web/20210414163336/https://tensorflow-dot-devsite-v2-prod-3p.appspot.com",1,null,["/_pwa/tensorflow/manifest.json","https://web.archive.org/web/20210414163336/https://www.gstatic.com/devrel-devsite/prod/v611aa55c57477cd8cd7cf431e9c41501ac9b499722f27f5e58377ae7957507df/images/video-placeholder.svg","https://web.archive.org/web/20210414163336/https://www.gstatic.com/devrel-devsite/prod/v611aa55c57477cd8cd7cf431e9c41501ac9b499722f27f5e58377ae7957507df/tensorflow/images/favicon.png","https://web.archive.org/web/20210414163336/https://www.gstatic.com/devrel-devsite/prod/v611aa55c57477cd8cd7cf431e9c41501ac9b499722f27f5e58377ae7957507df/tensorflow/images/lockup.svg","https://web.archive.org/web/20210414163336/https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700|Material+Icons"],1,null,[1,6,8,12,14,17,21,25,40,63,70,75,76,80,87,88,91,92,93,97,98,100,101,102,103,105,107,108,111,113,115,117,118,120,122,124,125,127,129,133,134,135],"AIzaSyCNm9YxQumEXwGJgTDjxoxXK6m1F-9720Q","AIzaSyCc76DZePGtoyUjqKrLdsMGk_ry7sljLbY"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html><!-- FILE ARCHIVED ON 16:33:36 Apr 14, 2021 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 21:55:31 Dec 12, 2024. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.601 exclusion.robots: 0.029 exclusion.robots.policy: 0.018 esindex: 0.009 cdx.remote: 36.605 LoadShardBlock: 797.469 (6) PetaboxLoader3.datanode: 372.528 (7) PetaboxLoader3.resolve: 301.201 (3) load_resource: 146.733 -->

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