{"id":31580,"date":"2017-05-31T19:44:53","date_gmt":"2017-05-31T16:44:53","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=31580"},"modified":"2021-12-13T22:41:11","modified_gmt":"2021-12-13T19:41:11","slug":"a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/","title":{"rendered":"A Broad Spectrum of TensorFlow APIs Inside and Outside the Project"},"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\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#TensorFlow_APIs_for_different_languages\" >TensorFlow APIs for different languages<\/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\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#APIs_inside_TensorFlow\" >APIs inside TensorFlow<\/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\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#APIs_outside_TensorFlow\" >APIs outside TensorFlow<\/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\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#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\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#About_the_expert\" >About the expert<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"TensorFlow_APIs_for_different_languages\"><\/span>TensorFlow APIs for different languages<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<div id=\"attachment_31584\" style=\"width: 160px\" class=\"wp-caption alignright\"><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/05\/aaron-schumacher-v1.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-31584\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/05\/aaron-schumacher-v1-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" class=\"size-thumbnail wp-image-31584\" \/><\/a><p id=\"caption-attachment-31584\" class=\"wp-caption-text\"><small>Aaron Schumacher<\/small><\/p><\/div>\n<p>Since its launch in 2015, TensorFlow has grown into a major player on the machine learning scene. Being actively developed, the tool now offers a bunch of stable low-level APIs with some high-level ones being implemented at a rapid pace.<\/p>\n<p>In his webinar, <a href=\"https:\/\/www.linkedin.com\/in\/ajschumacher\/\" target=\"_blank\" rel=\"noopener noreferrer\">Aaron Schumacher<\/a> of Deep Learning Analytics toured through the diversity of APIs available in TensorFlow.<\/p>\n<p>So, there are quite a few APIs for various programming languages.<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\">The <a href=\"https:\/\/github.com\/tensorflow\/tensorflow\/blob\/master\/tensorflow\/c\/c_api.h\" target=\"_blank\" rel=\"noopener noreferrer\">C API<\/a> is mainly <a href=\"https:\/\/www.tensorflow.org\/resources\/libraries-extensions\" target=\"_blank\" rel=\"noopener noreferrer\">utilized<\/a> in case one needs to build an API for some other language.<\/li>\n<li style=\"margin-bottom: 6px;\">The <a href=\"https:\/\/www.tensorflow.org\/api_docs\/cc\/\" target=\"_blank\" rel=\"noopener noreferrer\">C++ API<\/a> is still somewhat experimental and can be employed in a number of deployment scenarios one chooses. It is exposed via header files in <a href=\"https:\/\/github.com\/tensorflow\/tensorflow\/tree\/master\/tensorflow\/cc\" target=\"_blank\" rel=\"noopener noreferrer\">tensorflow\/cc<\/a>. (Note that TensorFlow runtime is written in C++.)<\/li>\n<li style=\"margin-bottom: 6px;\">The <a href=\"https:\/\/www.tensorflow.org\/api_docs\/python\/tf\/all_symbols\" target=\"_blank\" rel=\"noopener noreferrer\">Python API<\/a> is probably the most developed API at the moment with handful of features to enjoy.<\/li>\n<li style=\"margin-bottom: 6px;\">The <a href=\"https:\/\/github.com\/rstudio\/tensorflow\" target=\"_blank\" rel=\"noopener noreferrer\">R API<\/a>\u2014developed by <a href=\"https:\/\/www.rstudio.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">RStudio<\/a>\u2014wraps the Python API, thus granting access to all its features, which would be more laboursome experience if enabling replication via the C API.<\/li>\n<\/ul>\n<p>Furthermore, there are APIs for <a href=\"https:\/\/www.tensorflow.org\/api_docs\/java\/org\/tensorflow\/package-summary\" target=\"_blank\" rel=\"noopener noreferrer\">Java<\/a>, <a href=\"https:\/\/pkg.go.dev\/github.com\/tensorflow\/tensorflow\/tensorflow\/go?utm_source=godoc\" target=\"_blank\" rel=\"noopener noreferrer\">Go<\/a>, <a href=\"https:\/\/github.com\/tensorflow\/rust\" target=\"_blank\" rel=\"noopener noreferrer\">Rust<\/a>, <a href=\"https:\/\/github.com\/tensorflow\/haskell\" target=\"_blank\" rel=\"noopener noreferrer\">Haskell<\/a>, and unofficial ones\u2014designed outside the core TensorFlow project\u2014for C# and Julia.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"APIs_inside_TensorFlow\"><\/span>APIs inside TensorFlow<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Still Python-based, there are such low-level options as <a href=\"https:\/\/www.tensorflow.org\/api_docs\/python\/tf\/linalg\/matmul\" target=\"_blank\" rel=\"noopener noreferrer\">tf.matmul<\/a> and <a href=\"https:\/\/www.tensorflow.org\/api_docs\/python\/tf\/nn\/relu\" target=\"_blank\" rel=\"noopener noreferrer\">tf.nn.relu<\/a>, which can be of help when building a neural network architecture and needing to have a tight control over the process.<\/p>\n<p>The layers API will aid one in designing deep neural networks, providing \u201ca first higher level of abstraction over writing things by individual ops.\u201d Aaron exemplifies <a href=\"https:\/\/www.tensorflow.org\/api_docs\/python\/tf\/keras\/layers\/Conv2D\" target=\"_blank\" rel=\"noopener noreferrer\">tf.layers.conv2d<\/a> that implements a convolutional layer with multiple individual ops.<\/p>\n<p>With <a href=\"https:\/\/www.tensorflow.org\/api_docs\" target=\"_blank\" rel=\"noopener noreferrer\">the Estimators API<\/a>, one can define an interface, deliver models to fit into the Estimator system, or tune those models. Then, there are <em>canned estimators<\/em>\u2014pre-defined models following the estimator conventions (e.g., <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">LinearRegressor<\/code> or <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">DNNClassifier<\/code>). The functionality available through this collection:<\/p>\n<ul>\n<li>automatic checkpoints<\/li>\n<li>automatic logging<\/li>\n<li>separate training\/evaluation\/prediction<\/li>\n<li>simplified training distribution<\/li>\n<\/ul>\n<p>Well aware of  the sophisticated multi-thread, multi-queue, and queue-runner design that TensorFlow offers for loading data, its developers delivered <a href=\"https:\/\/github.com\/tensorflow\/tensorflow\/tree\/master\/tensorflow\/contrib\/data\" target=\"_blank\" rel=\"noopener noreferrer\">the Dataset API<\/a> to address this issue and provide a candy interface as a bonus.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/05\/tensorflow-data-pipeline-v31.gif\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2018\/03\/tensorflow-data-pipeline-v31.gif\" alt=\"\" width=\"640\" class=\"aligncenter size-large wp-image-31605\" \/><\/a><small>TensorFlow data pipeline (<a href=\"https:\/\/planspace.org\/20170524-more_and_better_new_tensorflow_apis\/img\/tf_data_pipeline.gif\" rel=\"noopener noreferrer\" target=\"_blank\">Image credit<\/a>)<\/small><\/center><\/p>\n<p>Other well-know options to check out include <a href=\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/\">TF-Slim<\/a>, <a href=\"https:\/\/www.altoros.com\/blog\/building-a-keras-based-image-classifier-using-tensorflow-for-a-back-end\/\">Keras<\/a>, and <a href=\"https:\/\/scikit-learn.org\/stable\/\" rel=\"noopener noreferrer\" target=\"_blank\">scikit-learn<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"APIs_outside_TensorFlow\"><\/span>APIs outside TensorFlow<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Then, there are options cultivated outside the core project by fellow machine learning enthusiasts.<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\"><a href=\"https:\/\/github.com\/tflearn\/tflearn\" target=\"_blank\" rel=\"noopener noreferrer\">TFLearn<\/a> (shouldn\u2019t be confused with TF Learn, which is TensorFlow\u2019s <a href=\"http:\/\/tflearn.org\/getting_started\/\" target=\"_blank\" rel=\"noopener noreferrer\">tf.contrib.learn<\/a>) is a separate Python package.<\/li>\n<li style=\"margin-bottom: 6px;\"><a href=\"https:\/\/github.com\/tensorlayer\/tensorlayer\" target=\"_blank\" rel=\"noopener noreferrer\">TensorLayer<\/a> comes as a separate package as well and is quite different from what TensorFlow\u2019s layers API has in stall. <\/li>\n<li style=\"margin-bottom: 6px;\"><a href=\"https:\/\/github.com\/google\/prettytensor\" target=\"_blank\" rel=\"noopener noreferrer\">Pretty Tensor<\/a> is actually a Google\u2019s project, offering <a href=\"https:\/\/en.wikipedia.org\/wiki\/Fluent_interface\" target=\"_blank\" rel=\"noopener noreferrer\">fluent interfaces<\/a> with spoonful of chaining.<\/li>\n<li style=\"margin-bottom: 6px;\"><a href=\"https:\/\/github.com\/deepmind\/sonnet\" target=\"_blank\" rel=\"noopener noreferrer\">Sonnet<\/a>, a project of Google\u2019s DeepMind, features a modular approach to that of <a href=\"https:\/\/github.com\/torch\/nn\" target=\"_blank\" rel=\"noopener noreferrer\">Torch\/NN<\/a>.<\/li>\n<\/ul>\n<p>The Jupyter notebook with the supporting files for code demos can be found on Aaron&#8217;s <a href=\"https:\/\/github.com\/ajschumacher\/tf_api_20170524\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub page<\/a>. For more details, check out his <a href=\"https:\/\/planspace.org\/20170524-more_and_better_new_tensorflow_apis\/\" target=\"_blank\" rel=\"noopener noreferrer\">blog post<\/a>, read <a href=\"https:\/\/planspace.org\/20170526-questions_from_tensorflow_apis_webinar\/\" target=\"_blank\" rel=\"noopener noreferrer\">Q&#038;As<\/a> from the webcast on the topic, or view the full <a href=\"https:\/\/www.altoros.com\/webinars\/more-and-better-the-new-tensorflow-apis\/\" target=\"_blank\" rel=\"noopener noreferrer\">webinar recording<\/a>.<\/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\/building-recommenders-with-multilayer-perceptron-using-tensorflow\/\">Building Recommenders with Multilayer Perceptron Using TensorFlow<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/ml-toolkit-for-tensorflow-out-of-the-box-algorithms-to-boost-training-data-by-50x\/\">ML Toolkit for TensorFlow: Out-of-the-Box Algorithms to Boost Training Data by 50x<\/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<p><small><a href=\"https:\/\/www.linkedin.com\/in\/ajschumacher\/\" target=\"_blank\" rel=\"noopener noreferrer\">Aaron Schumacher<\/a> is a data scientist and software engineer for Deep Learning Analytics. He has taught with Python and R for General Assembly and the Metis data science bootcamp. Aaron has also worked with data at Booz Allen Hamilton, New York University, and the New York City Department of Education. You can check out <a href=\"https:\/\/github.com\/ajschumacher\/\" target=\"_blank\" rel=\"noopener noreferrer\">his GitHub repo<\/a>.<\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>TensorFlow APIs for different languages<\/p>\n<p id=\"caption-attachment-31584\" class=\"wp-caption-text\">Aaron Schumacher<\/p>\n<p>Since its launch in 2015, TensorFlow has grown into a major player on the machine learning scene. Being actively developed, the tool now offers a bunch of stable low-level APIs with some high-level ones being implemented at a rapid pace.<\/p>\n<p>In his webinar, Aaron [&#8230;]<\/p>\n","protected":false},"author":3,"featured_media":31585,"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":[748,749],"class_list":["post-31580","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","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>A Broad Spectrum of TensorFlow APIs Inside and Outside the Project | Altoros<\/title>\n<meta name=\"description\" content=\"Learn about APIs cultivated both inside the core TensorFlow project\u2014including the ones for different languages\u2014and outside it, still worth checking out.\" \/>\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\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"A Broad Spectrum of TensorFlow APIs Inside and Outside the Project | Altoros\" \/>\n<meta property=\"og:description\" content=\"TensorFlow APIs for different languages Aaron Schumacher Since its launch in 2015, TensorFlow has grown into a major player on the machine learning scene. Being actively developed, the tool now offers a bunch of stable low-level APIs with some high-level ones being implemented at a rapid pace. In his webinar, Aaron [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2017-05-31T16:44:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-13T19:41:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/05\/tensorflow-apis-canned-estimators-v114.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1456\" \/>\n\t<meta property=\"og:image:height\" content=\"916\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sophia Turol\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sophia Turol\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/\",\"name\":\"A Broad Spectrum of TensorFlow APIs Inside and Outside the Project | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/05\/tensorflow-apis-canned-estimators-v114.png\",\"datePublished\":\"2017-05-31T16:44:53+00:00\",\"dateModified\":\"2021-12-13T19:41:11+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/58194952af19fe7b2b830846e077a58e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/05\/tensorflow-apis-canned-estimators-v114.png\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/05\/tensorflow-apis-canned-estimators-v114.png\",\"width\":1456,\"height\":916},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"A Broad Spectrum of TensorFlow APIs Inside and Outside the Project\"}]},{\"@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\/58194952af19fe7b2b830846e077a58e\",\"name\":\"Sophia Turol\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/05\/trello_card-96x96.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/05\/trello_card-96x96.jpg\",\"caption\":\"Sophia Turol\"},\"description\":\"Sophia Turol is passionate about delivering well-structured articles that cater for picky technical audience. With 3+ years in technical writing and 5+ years in editorship, she enjoys collaboration with developers to create insightful, yet intelligible technical tutorials, overviews, and case studies. Sophie is enthusiastic about deep learning solutions\u2014TensorFlow in particular\u2014and PaaS systems, such as Cloud Foundry.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/sophie-turol\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"A Broad Spectrum of TensorFlow APIs Inside and Outside the Project | Altoros","description":"Learn about APIs cultivated both inside the core TensorFlow project\u2014including the ones for different languages\u2014and outside it, still worth checking out.","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\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/","og_locale":"en_US","og_type":"article","og_title":"A Broad Spectrum of TensorFlow APIs Inside and Outside the Project | Altoros","og_description":"TensorFlow APIs for different languages Aaron Schumacher Since its launch in 2015, TensorFlow has grown into a major player on the machine learning scene. Being actively developed, the tool now offers a bunch of stable low-level APIs with some high-level ones being implemented at a rapid pace. In his webinar, Aaron [...]","og_url":"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/","og_site_name":"Altoros","article_published_time":"2017-05-31T16:44:53+00:00","article_modified_time":"2021-12-13T19:41:11+00:00","og_image":[{"width":1456,"height":916,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/05\/tensorflow-apis-canned-estimators-v114.png","type":"image\/png"}],"author":"Sophia Turol","twitter_misc":{"Written by":"Sophia Turol","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/","url":"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/","name":"A Broad Spectrum of TensorFlow APIs Inside and Outside the Project | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/05\/tensorflow-apis-canned-estimators-v114.png","datePublished":"2017-05-31T16:44:53+00:00","dateModified":"2021-12-13T19:41:11+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/58194952af19fe7b2b830846e077a58e"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/05\/tensorflow-apis-canned-estimators-v114.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/05\/tensorflow-apis-canned-estimators-v114.png","width":1456,"height":916},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/a-broad-spectrum-of-tensorflow-apis-inside-and-outside-the-project\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"A Broad Spectrum of TensorFlow APIs Inside and Outside the Project"}]},{"@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\/58194952af19fe7b2b830846e077a58e","name":"Sophia Turol","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/05\/trello_card-96x96.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2019\/05\/trello_card-96x96.jpg","caption":"Sophia Turol"},"description":"Sophia Turol is passionate about delivering well-structured articles that cater for picky technical audience. With 3+ years in technical writing and 5+ years in editorship, she enjoys collaboration with developers to create insightful, yet intelligible technical tutorials, overviews, and case studies. Sophie is enthusiastic about deep learning solutions\u2014TensorFlow in particular\u2014and PaaS systems, such as Cloud Foundry.","url":"https:\/\/www.altoros.com\/blog\/author\/sophie-turol\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/31580","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\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=31580"}],"version-history":[{"count":19,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/31580\/revisions"}],"predecessor-version":[{"id":65406,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/31580\/revisions\/65406"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/31585"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=31580"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=31580"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=31580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}