{"id":37268,"date":"2018-10-09T21:08:13","date_gmt":"2018-10-09T18:08:13","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=37268"},"modified":"2018-10-10T08:56:18","modified_gmt":"2018-10-10T05:56:18","slug":"tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/","title":{"rendered":"TensorFlow.js: Deploying and Training Machine Learning Models Right in a Browser"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#Browser-based_machine_learning\" >Browser-based machine learning<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#What_is_TensorFlowjs\" >What is TensorFlow.js?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#What_can_you_do_with_it\" >What can you do with it?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#Want_details_Watch_the_videos\" >Want details? Watch the videos!<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#Related_slides\" >Related slides<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#Further_reading\" >Further reading<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#About_the_expert\" >About the expert<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Browser-based_machine_learning\"><\/span>Browser-based machine learning<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>With the availability of data and open-source machine learning (ML) frameworks like <a href=\"https:\/\/www.altoros.com\/blog\/tag\/tensorflow\/\">TensorFlow<\/a>, interest in deploying ML models has grown over the years. Traditional machine learning systems, however, usually require some form of installation before being operational. For startups, data scientists, and individuals simply looking to lay their hands on ML, this can be a challenge.<\/p>\n<div id=\"attachment_37286\" style=\"width: 160px\" class=\"wp-caption alignright\"><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Zack-Akil-Google.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-37286\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Zack-Akil-Google-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" class=\"size-thumbnail wp-image-37286\" \/><\/a><p id=\"caption-attachment-37286\" class=\"wp-caption-text\"><small>Zack Akil<\/small><\/p><\/div>\n<p>At a recent <a href=\"https:\/\/www.meetup.com\/TensorFlow-London\/events\/254471478\/\" rel=\"noopener\" target=\"_blank\">TensorFlow meetup<\/a> in London, <a href=\"https:\/\/www.linkedin.com\/in\/zackakil\/\" rel=\"noopener\" target=\"_blank\">Zack Akil<\/a>, a Developer Advocate at Google, introduced attendees to TensorFlow.js, an ML framework for building and running lightweight models on a web browser. He also shared demos of ML models running on TensorFlow.js.<\/p>\n<blockquote><p><em>&#8220;TensorFlow.js allows you to build, train, test, and run the model all inside the client&#8217;s browser.&#8221; \u2014Zack Akil, Google<\/em><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"What_is_TensorFlowjs\"><\/span>What is TensorFlow.js?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"https:\/\/www.tensorflow.org\/js\/\" rel=\"noopener\" target=\"_blank\">TensorFlow.js<\/a> is an open-source library for defining, training, and deploying ML models. Unlike TensorFlow itself, which uses Python, TensorFlow.js is run completely on a web browser using JavaScript.<\/p>\n<p>TensorFlow.js is the successor of <b>deeplearn.js<\/b> (now called TensorFlow.js Core). The tool includes a Layers API, a higher level library, which uses Core, for building machine learning models. It also has instruments for automatically porting TensorFlow SavedModels and Keras HDF5 models.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-Standard-model.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-Standard-model-1024x576.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-37276\" \/><\/a><small>ML models are built, trained, and tested on a separate machine with TensorFlow (<a href=\"https:\/\/www.slideshare.net\/seldon_io\/tensorflow-london-17-ultra-portable-deep-learning-with-tensorflowjs\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>Being browser-based, TensorFlow.js users aren&#8217;t required to install any additional libraries or drivers. The tool also supports WebGL, meaning ML models automatically benefit from GPU acceleration when a GPU is available.<\/p>\n<p>Despite WebGL support, TensorFlow.js is better for training small models. According to <a href=\"https:\/\/www.tensorflow.org\/js\/faq\/\" rel=\"noopener\" target=\"_blank\">its FAQ<\/a>, TensorFlow.js with WebGL acceleration is 1.5\u20132x slower than TensorFlow with <a href=\"https:\/\/en.wikipedia.org\/wiki\/Advanced_Vector_Extensions\" rel=\"noopener\" target=\"_blank\">AVX<\/a>. Additionally, small models train faster in the browser while large models train up to 10\u201315x slower in the browser compared to TensorFlow with <a href=\"https:\/\/en.wikipedia.org\/wiki\/Advanced_Vector_Extensions\" rel=\"noopener\" target=\"_blank\">advanced vector extensions<\/a>.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js-1024x576.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-37270\" \/><\/a><small>Build, train, test, and run ML models entirely on a browser with TensorFlow.js (<a href=\"https:\/\/www.slideshare.net\/seldon_io\/tensorflow-london-17-ultra-portable-deep-learning-with-tensorflowjs\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>TensorFlow.js can also use sensor data to train models. It can take input from a web camera or a mouse, and in the case of mobile devices, it can take input from a gyroscope or an accelerometer.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js-web-camera-training.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js-web-camera-training-1024x867.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-37280\" \/><\/a><small>Training Pac-Man using images from a web camera (<a href=\"https:\/\/medium.com\/tensorflow\/introducing-tensorflow-js-machine-learning-in-javascript-bf3eab376db\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>Although TensorFlow.js runs on a web browser, it does not require a constant connection to the Internet, once the page has been loaded. Also, all the data stays in the computer.<\/p>\n<blockquote><p><em>&#8220;As soon as you go to the webpage, you&#8217;re able to write code that builds the machine learning model, write code that collects data for training, and write code that gets predictions from the model all in the browser.&#8221; \u2014Zack Akil, Google<\/em><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"What_can_you_do_with_it\"><\/span>What can you do with it?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Using TensorFlow.js, one is able to:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\"><strong>Develop ML with JavaScript<\/strong> through APIs that build and train models with the low-level JavaScript linear algebra library or the high-level Layers API.<\/li>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js-new-model.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js-new-model-1024x576.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-37294\" \/><\/a><small>Example code of a new model using TensorFlow.js (<a href=\"https:\/\/www.slideshare.net\/seldon_io\/tensorflow-london-17-ultra-portable-deep-learning-with-tensorflowjs\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<li style=\"margin-bottom: 6px;\"><strong>Run existing models<\/strong> by employing TensorFlow.js model converters that transfer the existing TensorFlow or Keras models right into the browser.<\/li>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js-loaded-model.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js-loaded-model-1024x576.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-37296\" \/><\/a><small>Example code for converting an existing model using TensorFlow.js (<a href=\"https:\/\/www.slideshare.net\/seldon_io\/tensorflow-london-17-ultra-portable-deep-learning-with-tensorflowjs\" rel=\"noopener\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<li style=\"margin-bottom: 6px;\"><strong>Retrain existing models<\/strong> by engaging <a href=\"https:\/\/www.altoros.com\/blog\/what-is-behind-deep-reinforcement-learning-and-transfer-learning-with-tensorflow\/\">transfer learning<\/a> to retrain the existing models using data collected in the browser.<\/li>\n<\/ul>\n<blockquote><p><em>&#8220;Instead of doing all the training upfront, TensorFlow.js supports extended training. As soon as a model has been loaded onto a user&#8217;s webpage, they can do a bit more training. This is useful for doing transfer learning.&#8221; \u2014Zack Akil, Google<\/em><\/p><\/blockquote>\n<p>As a browser-based tool for ML, TensorFlow.js provides a quick and easy way to begin learning ML. Organizations could also use it as an initial test platform for small models before transitioning to traditional ML systems, which cater to large-scale models.<\/p>\n<p>TensorFlow.js was <a href=\"https:\/\/medium.com\/tensorflow\/introducing-tensorflow-js-machine-learning-in-javascript-bf3eab376db\" rel=\"noopener\" target=\"_blank\">announced<\/a> back in March 30, 2018. Its development can be tracked in <a href=\"https:\/\/github.com\/tensorflow\/tfjs\" rel=\"noopener\" target=\"_blank\">the tool&#8217;s GitHub<\/a>.<\/p>\n<p>Since its release, the TensorFlow team have been working to add features to TensorFlow.js, with the latest update adding <a href=\"https:\/\/github.com\/tensorflow\/tfjs-node\" rel=\"noopener\" target=\"_blank\">support for Node.js.<\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Want_details_Watch_the_videos\"><\/span>Want details? Watch the videos!<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<div style=\"float:right; width:50%; padding-left:15px; font-size:14px;\">\n<strong>Table of contents<\/strong><\/p>\n<ol>\n<li style=\"margin-bottom: 16px;\">How does traditional TensorFlow work? (2:32)<\/li>\n<li style=\"margin-bottom: 16px;\">How does TensorFlow.js work? (5:10)<\/li>\n<li style=\"margin-bottom: 16px;\">Demo: online learning with TensorFlow.js (7:20)<\/li>\n<li style=\"margin-bottom: 16px;\">What does TensorFlow.js code look like? (10:38)<\/li>\n<li style=\"margin-bottom: 16px;\">Demo: MNIST draw (14:22)<\/li>\n<li style=\"margin-bottom: 16px;\">How are models imported? (16:50)<\/li>\n<li style=\"margin-bottom: 16px;\">Questions and answers (18:00)<\/li>\n<\/ol>\n<\/div>\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"TensorFlow London: Ultra portable Deep Learning with Tensorflow.js\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/t1NfIr7vDVE?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Related_slides\"><\/span>Related slides<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><center><iframe loading=\"lazy\" src=\"\/\/www.slideshare.net\/slideshow\/embed_code\/key\/NbeXXyTNHTU5wP\" width=\"595\" height=\"485\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" style=\"border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;\" allowfullscreen> <\/iframe><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Further_reading\"><\/span>Further reading<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/the-challenges-of-operating-a-machine-learning-model\/\">DataOps: The Challenges of Operating a Machine Learning Model<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/three-approaches-to-testing-and-validating-tensorflow-models\/\">Three Approaches to Testing and Validating TensorFlow Code<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"About_the_expert\"><\/span>About the expert<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div>\n<div style=\"float: right;\"><a href=\"https:\/\/www.linkedin.com\/in\/zackakil\/\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Zack-Akil-Google-bio.png\" alt=\"\" width=\"150\" height=\"150\" class=\"aligncenter size-full wp-image-37269\" \/><\/a><\/div>\n<div style=\"width: 600px;\"><small><a href=\"https:\/\/www.linkedin.com\/in\/zackakil\/\" rel=\"noopener\" target=\"_blank\">Zack Akil<\/a> is a Developer Advocate at Google. He is an experienced software engineer specializing in machine learning and data science. Prior to Google, Zack served as a Software Developer and Data Scientist at Pivigo and as a Developer at Runpath. He maintains skills in electrical engineering, as well as 3D modeling and printing.<\/small><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Browser-based machine learning<\/p>\n<p>With the availability of data and open-source machine learning (ML) frameworks like TensorFlow, interest in deploying ML models has grown over the years. Traditional machine learning systems, however, usually require some form of installation before being operational. For startups, data scientists, and individuals simply looking to lay their [&#8230;]<\/p>\n","protected":false},"author":32,"featured_media":37309,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[748,749],"class_list":["post-37268","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news-and-opinion","tag-machine-learning","tag-tensorflow"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>TensorFlow.js: Deploying and Training Machine Learning Models Right in a Browser | Altoros<\/title>\n<meta name=\"description\" content=\"With this open-source library, users can build, train, test, and run machine learning models entirely in a web browser or under Node.js.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TensorFlow.js: Deploying and Training Machine Learning Models Right in a Browser | Altoros\" \/>\n<meta property=\"og:description\" content=\"Browser-based machine learning With the availability of data and open-source machine learning (ML) frameworks like TensorFlow, interest in deploying ML models has grown over the years. Traditional machine learning systems, however, usually require some form of installation before being operational. For startups, data scientists, and individuals simply looking to lay their [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2018-10-09T18:08:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-10-10T05:56:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"360\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\n<meta name=\"author\" content=\"Carlo Gutierrez\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Carlo Gutierrez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/\",\"name\":\"TensorFlow.js: Deploying and Training Machine Learning Models Right in a Browser | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js.gif\",\"datePublished\":\"2018-10-09T18:08:13+00:00\",\"dateModified\":\"2018-10-10T05:56:18+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js.gif\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js.gif\",\"width\":640,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TensorFlow.js: Deploying and Training Machine Learning Models Right in a Browser\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442\",\"name\":\"Carlo Gutierrez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg\",\"caption\":\"Carlo Gutierrez\"},\"description\":\"Carlo Gutierrez is a Technical Writer at Altoros. As part of the editorial team, his focus has been on emerging technologies such as Cloud Foundry, Kubernetes, blockchain, and the Internet of Things. Prior to Altoros, he primarily wrote about enterprise and consumer technology. Carlo has over 12 years of experience in the publishing industry. Previously, he served as an Editor for PC World Philippines and Questex Asia, as well as a Designer for Tropa Entertainment.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/carlo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TensorFlow.js: Deploying and Training Machine Learning Models Right in a Browser | Altoros","description":"With this open-source library, users can build, train, test, and run machine learning models entirely in a web browser or under Node.js.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/","og_locale":"en_US","og_type":"article","og_title":"TensorFlow.js: Deploying and Training Machine Learning Models Right in a Browser | Altoros","og_description":"Browser-based machine learning With the availability of data and open-source machine learning (ML) frameworks like TensorFlow, interest in deploying ML models has grown over the years. Traditional machine learning systems, however, usually require some form of installation before being operational. For startups, data scientists, and individuals simply looking to lay their [...]","og_url":"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/","og_site_name":"Altoros","article_published_time":"2018-10-09T18:08:13+00:00","article_modified_time":"2018-10-10T05:56:18+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js.gif","type":"image\/gif"}],"author":"Carlo Gutierrez","twitter_misc":{"Written by":"Carlo Gutierrez","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/","url":"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/","name":"TensorFlow.js: Deploying and Training Machine Learning Models Right in a Browser | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js.gif","datePublished":"2018-10-09T18:08:13+00:00","dateModified":"2018-10-10T05:56:18+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/10\/Tensorflow-Machine-Learning-Artificial-Intelligence-TensorFlow.js.gif","width":640,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/tensorflow-js-deploying-and-training-machine-learning-models-right-in-a-browser\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"TensorFlow.js: Deploying and Training Machine Learning Models Right in a Browser"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/833e109f77de753b2b472dca0236b442","name":"Carlo Gutierrez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2021\/02\/CG_portrait-2-96x96.jpg","caption":"Carlo Gutierrez"},"description":"Carlo Gutierrez is a Technical Writer at Altoros. As part of the editorial team, his focus has been on emerging technologies such as Cloud Foundry, Kubernetes, blockchain, and the Internet of Things. Prior to Altoros, he primarily wrote about enterprise and consumer technology. Carlo has over 12 years of experience in the publishing industry. Previously, he served as an Editor for PC World Philippines and Questex Asia, as well as a Designer for Tropa Entertainment.","url":"https:\/\/www.altoros.com\/blog\/author\/carlo\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/37268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=37268"}],"version-history":[{"count":31,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/37268\/revisions"}],"predecessor-version":[{"id":37327,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/37268\/revisions\/37327"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/37309"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=37268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=37268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=37268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}