HTTP/2 301
location: https://js.tensorflow.org/
content-type: text/plain; charset=utf-8
accept-ranges: bytes
date: Mon, 29 Dec 2025 16:00:37 GMT
x-served-by: cache-bom-vanm7210086-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1767024037.288855,VS0,VE113
vary: x-fh-requested-host, accept-encoding
alt-svc: h3=":443";ma=86400,h3-29=":443";ma=86400,h3-27=":443";ma=86400
content-length: 41
HTTP/2 301
location: https://tensorflow.org/js/
content-type: text/plain; charset=utf-8
accept-ranges: bytes
date: Mon, 29 Dec 2025 16:00:37 GMT
x-served-by: cache-bom-vanm7210043-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1767024038.537969,VS0,VE321
vary: x-fh-requested-host, accept-encoding
alt-svc: h3=":443";ma=86400,h3-29=":443";ma=86400,h3-27=":443";ma=86400
content-length: 41
HTTP/2 301
location: https://www.tensorflow.org/js/
content-type: text/html; charset=UTF-8
x-content-type-options: nosniff
date: Mon, 29 Dec 2025 16:00:38 GMT
expires: Mon, 29 Dec 2025 16:30:38 GMT
cache-control: public, max-age=1800
server: sffe
content-length: 227
x-xss-protection: 0
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
HTTP/2 302
content-type: text/html; charset=utf-8
location: https://www.tensorflow.org/oauth2authorize?return_url=https%3A%2F%2Fwww.tensorflow.org%2Fjs&prompt=none&auto_signin=True&scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdeveloperprofiles+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdeveloperprofiles.award+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdevprofiles.full_control.firstparty
x-robots-tag: noindex
set-cookie: signin_details="Check Login State: Current Auto Sign in Status :Skip AutoSignin False: Skip Signin False: Auto signin the user - Oauth Sign in: Called Signin(): SignIn Redirect"; Expires=Mon, 29 Dec 2025 16:05:38 GMT; Max-Age=300; Secure; Path=/
set-cookie: signin=autosignin; Expires=Mon, 29 Dec 2025 16:05:38 GMT; Max-Age=300; Secure; Path=/
set-cookie: signin_details="Check Login State: Current Auto Sign in Status :Skip AutoSignin False: Skip Signin False: Auto signin the user - Oauth Sign in: Called Signin(): SignIn RedirectSetting SignInCookie - AutoSignin: "; Expires=Mon, 29 Dec 2025 16:05:38 GMT; Max-Age=300; Secure; Path=/
set-cookie: session=; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Max-Age=0; Secure; HttpOnly; Path=/; SameSite=None
vary: Cookie
vary: Accept-Encoding
content-security-policy: base-uri 'self'; object-src 'none'; script-src 'strict-dynamic' 'unsafe-inline' https: http: 'nonce-IKZyoWU3SIflUpbiGp3p32vF+bmyAv' 'unsafe-eval'; frame-ancestors 'self' https://developers.google.com/_d/analytics-iframe; report-uri https://csp.withgoogle.com/csp/devsite/v2
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-xss-protection: 0
x-content-type-options: nosniff
cache-control: no-cache, must-revalidate
expires: 0
pragma: no-cache
content-encoding: gzip
x-cloud-trace-context: 73d5b3b4854bcb2765c46daa872fce4d
date: Mon, 29 Dec 2025 16:00:38 GMT
server: Google Frontend
content-length: 312
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
HTTP/2 302
content-type: text/html; charset=utf-8
location: https://accounts.google.com/o/oauth2/v2/auth?client_id=157101835696-ooapojlodmuabs2do2vuhhnf90bccmoi.apps.googleusercontent.com&redirect_uri=https%3A%2F%2Fwww.tensorflow.org%2Foauth2callback&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdeveloperprofiles+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdeveloperprofiles.award+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdevprofiles.full_control.firstparty+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgoogledevelopers+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&access_type=online&response_type=code&state=%7B%22csrf_token%22%3A+%224805932c2348fcbb2906888eff8a5a7dca421e5aae3ecccf4f4215a905b247db%22%2C+%22return_url%22%3A+%22https%3A%2F%2Fwww.tensorflow.org%2Fjs%22%7D&prompt=none&auto_signin=True
set-cookie: signin_details="Check Login State: Current Auto Sign in Status :Skip AutoSignin False: Skip Signin False: Auto signin the user - Oauth Sign in: Called Signin(): SignIn RedirectSetting SignInCookie - AutoSignin: Start_Oauth(): Start Oauth Prompt - none: "; Expires=Mon, 29 Dec 2025 16:05:38 GMT; Max-Age=300; Secure; Path=/
set-cookie: session=.eJylVE-TojgU_ypbnvcAQXpkboqC0ARLVAK5dJGAIibItgLi1Hz3eWjbPdXVh51dD6gkee_3L-_H4KXKXmVSZuV58P38Wmd_D3bH405kL8ekPufohZ9ety_n4yErB98Hw5GiGxriSBuOtpwxZChPo9Eo225HiZ58S3kyRGqmJ0mmZZzz7XAL__XEUHSGht9SNvhcfSuO7cv_rvr9x-AveA5241Uol8vx_WNiCxl5GgVHLP1TQsI6tUZKdB3XMbpUlOiKcNr1WrHU1N51IQr3GxR2qQy7QF6aVF-thSknYo42z07rPs5ESBzEzHfweqPh9fiymGLVLw7II0YTR5MmgbPUVtWYuFcsgwaXVE3svKbFoY2lXzBiVJ60Wj7HNUVGQ9FFpJEvuPQbVgaClUvAZ5wBm__eU_NFrLkidYOpPefnNKzaTYkvga06VJspC1ONgk0eB8X4TNwVnkTQR5sIYeXWGORI5oEC_Z68ztBSjb_3BbwV7_SCIQWwh0piGgcaUcFso6WR23JpyIRcBO8mx3QetPx6bDyokHZ6CS6VzA5zbour12Nf3bX2UCBAw1Pfn5eTjiFawT7YY2lx5B4cO1fS-eS62I8aqKR5Mm0YSk-UWG0S4Rt3D908AR1DxOduQ6U4UVijJdS1DMCrK4Dt5Ela8dJXuG116fyw-wOeKgevE6JL1unvPP8I21vtHiMll4bbYQc69d91Qpb_FYtgxKoYeDidu1BbdJT44D-s0xV-Jp_w3fLiN1xS0JvXTHNL7yPzObMv-5j4r5ClZ_C0hB7bxBY15GhRjKtb3whZ5e0uzJ6waffc8m0auRWcOf3GIY-R36Swj797v3nTYwQa3e-Qp8XdXZ_9phgLhaGzYAL4SbkpTP8jQw-M-y9zdD9XrbBZQual8UrDR43g39boIMdNggjgqPpMVzEKH7yq33jdPZg6X_rTe5sQX3jAndp9Lf3BqWKSNg9fXPThy7sWX2VHCwBTnw_wWl9h6643-Cee4iioINfgT5hD3673YxIabYJ8IRyJp6THABxknxVa0eh5sz62dp_9mKjXtznlgd8FjfxrpAU6v2GmDZMXwNv_VkEXv4U-V9BUySKYEU47A2wHSm9zQwEc8K6bZJ1bcM2V0RtmpzjunGI5xNONjq9ugQusLGxaxNLpFusxWkx3Q0qoXNgzNV6nhxjNFFxYwidWTtcwvxDgKgLpT52LT2Y6noZ7XCw1ajt7zxzvuQwV8KfuNWWm8-SY7ueZo0BOr5BxCVmGuwked8Y_vHMN4GD3c4JFk36mz5g06p6PefPC2HIkSiZF3a-Fc1elNFBT4tSDnz9_ASK_WNM.aVKlpg.3uplT-XJFvAa8jpShVSYInsQdT4; Expires=Thu, 29 Jan 2026 16:00:38 GMT; Secure; HttpOnly; Path=/; SameSite=None
vary: Cookie
vary: Accept-Encoding
content-security-policy: base-uri 'self'; object-src 'none'; script-src 'strict-dynamic' 'unsafe-inline' https: http: 'nonce-35NjI9r0UwhNR6++Bv4PDgww803LV4' 'unsafe-eval'; frame-ancestors 'self' https://developers.google.com/_d/analytics-iframe; report-uri https://csp.withgoogle.com/csp/devsite/v2
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-xss-protection: 0
x-content-type-options: nosniff
cache-control: no-cache, must-revalidate
expires: 0
pragma: no-cache
content-encoding: gzip
x-cloud-trace-context: ea7ef4cfaa59669e65c46daa872fcf00
date: Mon, 29 Dec 2025 16:00:38 GMT
server: Google Frontend
content-length: 545
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
HTTP/2 302
content-type: text/html; charset=UTF-8
set-cookie: __Host-GAPS=1:6bB30YiRRutEuvMUIQltiwS-_FmVIQ:-7VxtlwLTvINt8Tk;Path=/;Expires=Wed, 29-Dec-2027 16:00:39 GMT;Secure;HttpOnly;Priority=HIGH
cache-control: no-cache, no-store, max-age=0, must-revalidate
pragma: no-cache
expires: Mon, 01 Jan 1990 00:00:00 GMT
date: Mon, 29 Dec 2025 16:00:39 GMT
location: https://www.tensorflow.org/oauth2callback?state=%7B%22csrf_token%22%3A+%224805932c2348fcbb2906888eff8a5a7dca421e5aae3ecccf4f4215a905b247db%22%2C+%22return_url%22%3A+%22https%3A%2F%2Fwww.tensorflow.org%2Fjs%22%7D&error_subtype=access_denied&error=interaction_required
origin-trial: Ajo6ZZxoPufZZ6x0UgjawhB/adBJ+tLG7aX1MO8kWVCTHdOVSlY4OjhBhzivzulNh6ikNKRnwxwK18EvUu6aOgcAAABteyJvcmlnaW4iOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb206NDQzIiwiZmVhdHVyZSI6IldlYlZpZXdYUmVxdWVzdGVkV2l0aERlcHJlY2F0aW9uIiwiZXhwaXJ5IjoxNzU4MDY3MTk5fQ==
strict-transport-security: max-age=31536000; includeSubDomains
content-security-policy: script-src 'report-sample' 'nonce-EPGQDLQoErMfEnHGsbFGww' 'unsafe-inline' 'unsafe-eval';object-src 'none';base-uri 'self';report-uri /cspreport
content-security-policy: require-trusted-types-for 'script';report-uri /cspreport
report-to: {"group":"coop_gse_qebhlk","max_age":2592000,"endpoints":[{"url":"https://csp.withgoogle.com/csp/report-to/gse_qebhlk"}]}
cross-origin-opener-policy-report-only: same-origin; report-to="coop_gse_qebhlk"
content-encoding: gzip
x-content-type-options: nosniff
x-xss-protection: 1; mode=block
content-length: 358
server: GSE
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
HTTP/2 302
content-type: text/html; charset=utf-8
location: https://www.tensorflow.org/js
set-cookie: signin_details="Check Login State: Current Auto Sign in Status :Skip AutoSignin False: Skip Signin False: Auto signin the user - Oauth Sign in: Called Signin(): SignIn RedirectSetting SignInCookie - AutoSignin: Start_Oauth(): Start Oauth Prompt - none: Called Oauth2Callback(): Oauth2Callback callback view: Oauth2Callback No User creds: Oauth2Callback error:no_credentials:bad_request:Authorization failed: interaction_required: Oauth2Callback AS_state autosignin: "; Expires=Mon, 29 Dec 2025 16:05:39 GMT; Max-Age=300; Secure; Path=/
set-cookie: signin_details=; Expires=Thu, 01 Jan 1970 00:00:00 GMT; Max-Age=0; Path=/
set-cookie: session=eyJfcGVybWFuZW50Ijp0cnVlfQ.aVKlpw.o0nygFMs-vcAWAAR0BaVfVETWnE; Expires=Thu, 29 Jan 2026 16:00:39 GMT; Secure; HttpOnly; Path=/; SameSite=None
vary: Cookie
vary: Accept-Encoding
content-security-policy: base-uri 'self'; object-src 'none'; script-src 'strict-dynamic' 'unsafe-inline' https: http: 'nonce-iR8Bi0h7Sq+wfjeqXmyGQm+A743gn/' 'unsafe-eval'; frame-ancestors 'self' https://developers.google.com/_d/analytics-iframe; report-uri https://csp.withgoogle.com/csp/devsite/v2
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-xss-protection: 0
x-content-type-options: nosniff
cache-control: no-cache, must-revalidate
expires: 0
pragma: no-cache
content-encoding: gzip
x-cloud-trace-context: 7b0222e869a6ad4765c46daa872fc8fa
date: Mon, 29 Dec 2025 16:00:39 GMT
server: Google Frontend
content-length: 181
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
HTTP/2 200
last-modified: Thu, 07 Nov 2024 18:30:24 GMT
content-type: text/html; charset=utf-8
vary: Cookie
vary: Accept-Encoding
set-cookie: session=eyJfcGVybWFuZW50Ijp0cnVlfQ.aVKlqA.4jggOX-7dfkWKOqKI4GBnzkZoVs; Expires=Thu, 29 Jan 2026 16:00:40 GMT; Secure; HttpOnly; Path=/; SameSite=None
content-security-policy: base-uri 'self'; object-src 'none'; script-src 'strict-dynamic' 'unsafe-inline' https: http: 'nonce-bSRZJ9THmAmkqB3RsmM5roJC45Fglg' 'unsafe-eval'; frame-ancestors 'self' https://developers.google.com/_d/analytics-iframe; report-uri https://csp.withgoogle.com/csp/devsite/v2
strict-transport-security: max-age=63072000; includeSubdomains; preload
x-xss-protection: 0
x-content-type-options: nosniff
cache-control: no-cache, must-revalidate
expires: 0
pragma: no-cache
content-encoding: gzip
x-cloud-trace-context: f7498b655bc0de7765c46daa872fcd9e
date: Mon, 29 Dec 2025 16:00:40 GMT
server: Google Frontend
content-length: 81961
alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
TensorFlow.js | Machine Learning for JavaScript Developers
Skip to main content
New to machine learning? Watch a video course to get practical working knowledge of ML using web technologies
View series
Stay organized with collections
Save and categorize content based on your preferences.
TensorFlow.js is a library for machine learning in JavaScript
Develop ML models in JavaScript, and use ML directly in the browser or in Node.js.
Run existing models
Use off-the-shelf JavaScript models or convert Python TensorFlow models to run in the browser or under Node.js.
Retrain existing models
Retrain pre-existing ML models using your own data.
Develop ML with JavaScript
Build and train models directly in JavaScript using flexible and intuitive APIs.
Holobooth
Transport yourself to a tropical beach, outer space, and elsewhere with the power of web ML.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[]]