{"id":32323,"date":"2016-05-05T16:52:20","date_gmt":"2016-05-05T13:52:20","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=32323"},"modified":"2018-04-18T20:01:12","modified_gmt":"2018-04-18T17:01:12","slug":"prototype-tensorflow-as-a-service-on-openpower-machines","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/","title":{"rendered":"Prototype: TensorFlow-as-a-Service on OpenPOWER Machines"},"content":{"rendered":"<p><a href=\"https:\/\/www.tensorflow.org\/\" target=\"_blank\">TensorFlow<\/a> is an open-source deep learning library originally developed by Google. The solution\u2019s flexible architecture allows for deploying computations to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API.<\/p>\n<p>Altoros created a prototype of a multi-user TensorFlow service on <a href=\"https:\/\/openpowerfoundation.org\/\" target=\"_blank\">OpenPOWER<\/a> machines with NVIDIA GPUs and Docker. The prototype was demonstrated at the <a href=\"https:\/\/www.nvidia.com\/gtc\/\" target=\"_blank\">GPU Technology Conference<\/a> in April 2016.<\/p>\n<p>&nbsp;<\/p>\n<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\/prototype-tensorflow-as-a-service-on-openpower-machines\/#Whats_the_concept\" >What\u2019s the concept?<\/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\/prototype-tensorflow-as-a-service-on-openpower-machines\/#How_it_works\" >How it works<\/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\/prototype-tensorflow-as-a-service-on-openpower-machines\/#Results\" >Results<\/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\/prototype-tensorflow-as-a-service-on-openpower-machines\/#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-5\" href=\"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/#About_the_authors\" >About the authors<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Whats_the_concept\"><\/span>What\u2019s the concept?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>We demonstrated a method to create a multi-tenant, multi-user, <a href=\"https:\/\/www.altoros.com\/research-papers\/performance-of-distributed-tensorflow-a-multi-node-and-multi-gpu-configuration\/\">multi-GPU TensorFlow<\/a> environment that would enable teams of data scientists to collaborate on a common problem.<\/p>\n<p>The prototype is a cluster, combining several OpenPOWER S822LC machines. Each machine includes:<\/p>\n<ul>\n<li>two GPU cards (NVIDIA Tesla K80) that are recognized within the OS as four GPU devices<\/li>\n<li>isolated Docker containers (using the <a href=\"https:\/\/github.com\/NVIDIA\/nvidia-docker\" target=\"_blank\">NVIDIA-Docker project<\/a>)<\/li>\n<li>TensorFlow (in Docker)<\/li>\n<li>customized <a href=\"https:\/\/developer.nvidia.com\/digits\" target=\"_blank\">NVIDIA Digits<\/a> installed<\/li>\n<\/ul>\n<p>The cluster is controlled by a <em>cluster management app<\/em>. The scheduler of the management app is responsible for allocating resources to perform GPU calculations. Each Docker container can have different portions of CPU, GPU, or RAM resources; the resources are defined for each container on its creation.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/05\/prototype-tensorflow-as-a-service-on-ibm-power-cluster-management-app-v2.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/05\/prototype-tensorflow-as-a-service-on-ibm-power-cluster-management-app-v2-1024x640.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-32327\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"How_it_works\"><\/span>How it works<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>On logging into a cluster management app, an admin gets access to the resources of the cluster (CPU, GPU, RAM) and list of organizations registered within the system. The information about the number of users and resources within each organization is also available.<\/p>\n<p>When you create a new user within an organization, you allocate resources for the user. A Docker container with these resources is created automatically.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/05\/prototype-tensorflow-as-a-service-on-ibm-open-power-nvidia-digits-v2.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/05\/prototype-tensorflow-as-a-service-on-ibm-open-power-nvidia-digits-v2-1024x640.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-32325\" \/><\/a><\/p>\n<p>Then, a user can choose the customized Digits app running on the Docker container. The user can create a new model by selecting a data set, standard network, and saving the model.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Results\"><\/span>Results<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To examine how fast the solution trains a model, we carried out some experiments with <a href=\"https:\/\/www.cs.toronto.edu\/~kriz\/cifar.html\" target=\"_blank\">CIFAR-10<\/a>, a widely recognized visual data set used for object recognition. It consists of 60,000 32&#215;32 color images across 10 categories (airplanes, cars, cats, dogs, etc.). The CIFAR-10 data set was tested with default settings:<\/p>\n<ol>\n<li>on OpenPOWER<\/li>\n<li>on Amazon AWS<\/li>\n<li>inside a Docker container on OpenPOWER<\/li>\n<\/ol>\n<p>When training a model on bare OpenPOWER machines with the NVIDIA K80 GPUs, it took 6 hours to achieve 86% of accuracy (ratio between the number of correct predictions and the total number of predictions). Approximately the same time was needed to train a model using TensorFlow inside a Docker container on OpenPOWER. However, training the model on Amazon AWS was slower by approximately three times (i.e., training time was about 15\u201318 hours).<\/p>\n<p>In the course of the experiment, we\u2019ve also found out that Amazon\u2019s GPU cards (NVIDIA GRID GK104 \u201cKepler\u201d) are outdated to support TensorFlow. So, engineers at Altoros rebuilt TensorFlow to provide compatibility with the older version of GPU.<\/p>\n<p>Although the work on the prototype is still in progress, we expect that a \u201cdockerized\u201d OpenPOWER service for TensorFlow will be a viable alternative to a multi-user\/multi-tenant service, since no performance bottlenecks were detected when running tests inside a Docker container.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/05\/prototype-tensorflow-as-a-service-on-ibm-openpower-v2.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/05\/prototype-tensorflow-as-a-service-on-ibm-openpower-v2-1024x643.png\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-32326\" \/><\/a><\/p>\n<p>We would like to thank the IBM team for the OpenPOWER resources and <a href=\"https:\/\/www.linkedin.com\/in\/ipoddar\" target=\"_blank\">Indrajit Poddar<\/a>, Senior Technical Staff Member at IBM, for help with running TensorFlow and Docker with GPUs on OpenPOWER.<\/p>\n<p>Let us know in the comments if you want to learn more about the prototype or need to develop something similar.<\/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\/porting-cloud-foundry-to-ibm-power-processors\/\">Porting Cloud Foundry to IBM POWER Processors<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/tensorflow-and-openpower-driving-faster-cancer-recognition-and-diagnosis\/\">TensorFlow and OpenPOWER Driving Faster Cancer Recognition and Diagnosis<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"About_the_authors\"><\/span>About the authors<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><small><strong>Sergey Kovalev<\/strong> is a senior software engineer with extensive experience in high-load application development, big data and NoSQL solutions, cloud computing, data warehousing, and machine learning. He has strong expertise in back-end engineering, applying the best approaches for development, architecture design, and scaling. He has solid background in software development practices, such as the Agile methodology, prototyping, patterns, refactoring, and code review. Now, Sergey\u2019s main interest lies in big data distributed computing and machine learning.<\/small><\/p>\n<p><small><strong>Alexander Lomov<\/strong> is a Cloud Foundry Engineer at Altoros. With extensive Ruby experience, Alexander is a fan of the open source movement, having contributed to BOSH, Cloud Foundry, Fog, and many other projects. His professional interests include distributed computing, cloud technologies, and much more. Find him on <a href=\"https:\/\/twitter.com\/code1n\" target=\"_blank\">Twitter<\/a> or <a href=\"https:\/\/github.com\/allomov\/\" target=\"_blank\">GitHub<\/a>.<\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>TensorFlow is an open-source deep learning library originally developed by Google. The solution\u2019s flexible architecture allows for deploying computations to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API.<\/p>\n<p>Altoros created a prototype of a multi-user TensorFlow service on OpenPOWER machines with NVIDIA [&#8230;]<\/p>\n","protected":false},"author":122,"featured_media":32331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[214],"tags":[914,748,749],"class_list":["post-32323","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-healthcare","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>Prototype: TensorFlow-as-a-Service on OpenPOWER Machines | Altoros<\/title>\n<meta name=\"description\" content=\"This blog post introduces a PoC for creating a multi-tenant, multi-user TensorFlow environment using Docker and multiple GPUs.\" \/>\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\/prototype-tensorflow-as-a-service-on-openpower-machines\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Prototype: TensorFlow-as-a-Service on OpenPOWER Machines | Altoros\" \/>\n<meta property=\"og:description\" content=\"TensorFlow is an open-source deep learning library originally developed by Google. The solution\u2019s flexible architecture allows for deploying computations to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. Altoros created a prototype of a multi-user TensorFlow service on OpenPOWER machines with NVIDIA [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2016-05-05T13:52:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-04-18T17:01:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/04\/Prototype-TensorFlow-as-a-Service-on-OpenPOWER-Machines.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=\"Sergey Kovalev\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sergey Kovalev\" \/>\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\/prototype-tensorflow-as-a-service-on-openpower-machines\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/\",\"name\":\"Prototype: TensorFlow-as-a-Service on OpenPOWER Machines | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/04\/Prototype-TensorFlow-as-a-Service-on-OpenPOWER-Machines.gif\",\"datePublished\":\"2016-05-05T13:52:20+00:00\",\"dateModified\":\"2018-04-18T17:01:12+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/7bb3c35a84eeaa32af69b53773e7fe1a\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/04\/Prototype-TensorFlow-as-a-Service-on-OpenPOWER-Machines.gif\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/04\/Prototype-TensorFlow-as-a-Service-on-OpenPOWER-Machines.gif\",\"width\":640,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prototype: TensorFlow-as-a-Service on OpenPOWER Machines\"}]},{\"@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\/7bb3c35a84eeaa32af69b53773e7fe1a\",\"name\":\"Sergey Kovalev\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/3faf706-150x150.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/3faf706-150x150.jpg\",\"caption\":\"Sergey Kovalev\"},\"description\":\"Sergey Kovalev is a senior software engineer with extensive experience in high-load application development, big data and NoSQL solutions, cloud computing, data warehousing, and machine learning. He has strong expertise in back-end engineering, applying the best approaches for development, architecture design, and scaling. He has solid background in software development practices, such as the Agile methodology, prototyping, patterns, refactoring, and code review. Now, Sergey\u2019s main interest lies in big data distributed computing and machine learning.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/s-kovalev\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Prototype: TensorFlow-as-a-Service on OpenPOWER Machines | Altoros","description":"This blog post introduces a PoC for creating a multi-tenant, multi-user TensorFlow environment using Docker and multiple GPUs.","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\/prototype-tensorflow-as-a-service-on-openpower-machines\/","og_locale":"en_US","og_type":"article","og_title":"Prototype: TensorFlow-as-a-Service on OpenPOWER Machines | Altoros","og_description":"TensorFlow is an open-source deep learning library originally developed by Google. The solution\u2019s flexible architecture allows for deploying computations to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. Altoros created a prototype of a multi-user TensorFlow service on OpenPOWER machines with NVIDIA [...]","og_url":"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/","og_site_name":"Altoros","article_published_time":"2016-05-05T13:52:20+00:00","article_modified_time":"2018-04-18T17:01:12+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/04\/Prototype-TensorFlow-as-a-Service-on-OpenPOWER-Machines.gif","type":"image\/gif"}],"author":"Sergey Kovalev","twitter_misc":{"Written by":"Sergey Kovalev","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/","url":"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/","name":"Prototype: TensorFlow-as-a-Service on OpenPOWER Machines | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/04\/Prototype-TensorFlow-as-a-Service-on-OpenPOWER-Machines.gif","datePublished":"2016-05-05T13:52:20+00:00","dateModified":"2018-04-18T17:01:12+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/7bb3c35a84eeaa32af69b53773e7fe1a"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/04\/Prototype-TensorFlow-as-a-Service-on-OpenPOWER-Machines.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/04\/Prototype-TensorFlow-as-a-Service-on-OpenPOWER-Machines.gif","width":640,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/prototype-tensorflow-as-a-service-on-openpower-machines\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Prototype: TensorFlow-as-a-Service on OpenPOWER Machines"}]},{"@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\/7bb3c35a84eeaa32af69b53773e7fe1a","name":"Sergey Kovalev","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/3faf706-150x150.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/3faf706-150x150.jpg","caption":"Sergey Kovalev"},"description":"Sergey Kovalev is a senior software engineer with extensive experience in high-load application development, big data and NoSQL solutions, cloud computing, data warehousing, and machine learning. He has strong expertise in back-end engineering, applying the best approaches for development, architecture design, and scaling. He has solid background in software development practices, such as the Agile methodology, prototyping, patterns, refactoring, and code review. Now, Sergey\u2019s main interest lies in big data distributed computing and machine learning.","url":"https:\/\/www.altoros.com\/blog\/author\/s-kovalev\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/32323","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\/122"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=32323"}],"version-history":[{"count":7,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/32323\/revisions"}],"predecessor-version":[{"id":32369,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/32323\/revisions\/32369"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/32331"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=32323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=32323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=32323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}