{"id":32240,"date":"2017-01-05T18:51:39","date_gmt":"2017-01-05T15:51:39","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=32240"},"modified":"2018-08-01T17:09:15","modified_gmt":"2018-08-01T14:09:15","slug":"introduction-to-neural-networks-and-metaframeworks-with-tensorflow","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/","title":{"rendered":"Introduction to Neural Networks and Metaframeworks with TensorFlow"},"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\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#Deep_learning_gaining_its_momentum\" >Deep learning gaining its momentum<\/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\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#Learning_patterns_with_neural_networks\" >Learning patterns with neural networks<\/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\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#Convolutional_neural_networks\" >Convolutional neural networks<\/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\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#Recurrent_neural_networks\" >Recurrent neural networks<\/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\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#Four_TensorFlow_object_types\" >Four TensorFlow object types<\/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\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#Metaframeworks_for_TensorFlow\" >Metaframeworks for TensorFlow<\/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\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#Want_details\" >Want details?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#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-9\" href=\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#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-10\" href=\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#About_the_expert\" >About the expert<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Deep_learning_gaining_its_momentum\"><\/span>Deep learning gaining its momentum<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Google CEO <a href=\"https:\/\/twitter.com\/sundarpichai\" target=\"_blank\">Sundar Pichai<\/a> has called machine Learning (ML) \u201ca core transformative way by which we are rethinking everything we are doing.\u201d In this spirit, Google open-sourced its TensorFlow \u201cmachine intelligence\u201d technology in November 2015.<\/p>\n<div id=\"attachment_32248\" style=\"width: 130px\" class=\"wp-caption alignright\"><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Dipendra-Jha-tensorflow.jpg\"><img decoding=\"async\" aria-describedby=\"caption-attachment-32248\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Dipendra-Jha-tensorflow.jpg\" alt=\"\" width=\"120\" class=\"size-full wp-image-32248\" \/><\/a><p id=\"caption-attachment-32248\" class=\"wp-caption-text\"><small>Dipendra Jha<\/small><\/p><\/div>\n<p>With the technology gaining its momentum in 2016, <a href=\"https:\/\/www.linkedin.com\/in\/dipendra009\" target=\"_blank\">Dipendra Jha<\/a> led a <a href=\"https:\/\/www.altoros.com\/events\/deep-learning-using-tensorflow-and-tensorflow-slim\/#get_record\" target=\"_blank\">webinar<\/a> to take almost 300 attendees through a detailed overview of training neural networks. In addition, he introduced the audience to <a href=\"https:\/\/github.com\/tensorflow\/models\/blob\/master\/inception\/inception\/slim\/README.md\" target=\"_blank\">TF-Slim<\/a>, a metaframework, which uses far less code than similar tools.<\/p>\n<p>Dipendra noted that ML discussions often involve its two siblings, <em>deep learning (DL)<\/em> and <em>artificial intelligence (AI)<\/em>. He also pointed out that AI-related projects at Google have risen from very few in 2012 to almost 2,700 today.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Learning_patterns_with_neural_networks\"><\/span>Learning patterns with neural networks<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>With ML and specifically with TensorFlow, the concept of <a href=\"https:\/\/www.altoros.com\/blog\/under-the-hood-mechanisms-of-neural-networks-with-tensorflow\/\">neural networks<\/a> also comes into play. According to Dependra, deep neural networks can sometimes recognize images more efficiently than a human. The slide below shows a graphic of a neuron, as well as a very small network. Training neural network of any size means:<\/p>\n<ul>\n<li><strong>sample<\/strong> a batch of data<\/li>\n<li><strong>forward<\/strong> the sample through the network to get predictions<\/li>\n<li>&#8220;<b>backprop<\/b>&#8221; any errors (see <a href=\"https:\/\/en.wikipedia.org\/wiki\/Backpropagation\" target=\"_blank\">backpropagation<\/a>)<\/li>\n<li><strong>update<\/strong> the weighting of inputs and then repeat<\/li>\n<\/ul>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/deep-learning-using-tensorflow-artificial-neural-networks-training-v1.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/deep-learning-using-tensorflow-artificial-neural-networks-training-v1.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-32243\" \/><\/a><\/center><\/p>\n<p>Employing neural networks can create systems that are \u201cexceptionally effective at learning patterns,\u201d according to Dipendra.<\/p>\n<blockquote><p><em>\u201cNeural networks utilize learning algorithms that derive meaning out of data by using a hierarchy of multiple layers that mimic the neural networks of our brain.&#8221; \u2014Dipendra Jha<\/em><\/p><\/blockquote>\n<p>&#8220;(Thus,) if you provide the system tons of information, it begins to understand it and respond in useful ways,\u201d he added. A deep neural network will have a <em>hierarchy of layers<\/em>, in which each layer <em>transforms input data<\/em> into a more <em>abstract concept<\/em>, such as an &#8220;edge,&#8221; or &#8220;nose,&#8221; or &#8220;face.&#8221; Then an output layer combines those concepts to make predictions.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Deep-Learning-Using-TensorFlow-neural-networks-architecture-v1.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Deep-Learning-Using-TensorFlow-neural-networks-architecture-v1.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-32244\" \/><\/a><\/center><\/p>\n<p>Dipendra also demonstrated what the system had eventually learnt.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/training-a-neural-network-with-tensorflow-output-v1.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/training-a-neural-network-with-tensorflow-output-v1.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-32251\" \/><\/a><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Convolutional_neural_networks\"><\/span>Convolutional neural networks<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Extending this thought a bit, he discussed <a href=\"https:\/\/www.altoros.com\/blog\/using-convolutional-neural-networks-and-tensorflow-for-image-classification\/\" target=\"_blank\">convolutional neural networks<\/a> (CNNs), in which he said a series of computational layers emulate the visual processing system of visual cortex, with each layer taking in and then outputting a <em>three-dimensional volume<\/em> (i.e., a series) of numbers:<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/TensorFlow-convolutional-neural-networks-v1.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/TensorFlow-convolutional-neural-networks-v1.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-32250\" \/><\/a><\/center><\/p>\n<p>Key aspects of CNNs:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\"><strong>Input.<\/strong> 4D tensor of shape (mini-batch size, number of input feature maps, image heights, and image width)<\/li>\n<li style=\"margin-bottom: 6px;\"><strong>Weights.<\/strong> 4D tensor of shape (number of feature maps at layer <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">m<\/code>, number of feature maps at layer <code style=\"color: #222222; background-color: #e6e6e6; padding: 1px 2px;\">m-1<\/code>, filter height, and filter width)<\/li>\n<li style=\"margin-bottom: 6px;\"><strong>Max Pooling.<\/strong> Outputs maximum value for each overlapping subregion<\/li>\n<li style=\"margin-bottom: 6px;\"><strong>Depth.<\/strong> Number of filters we would like to use<\/li>\n<li style=\"margin-bottom: 6px;\"><strong>Padding.<\/strong> Pad the input volume with zeroes around the border<\/li>\n<li><strong>Stride.<\/strong> Number of pixels with wich we slide the filter<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Recurrent_neural_networks\"><\/span>Recurrent neural networks<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Add to this the idea of <em>feedback loops<\/em> and you can create <a href=\"https:\/\/www.altoros.com\/blog\/using-recurrent-neural-networks-and-tensorflow-to-recognize-handwriting\/\" target=\"_blank\">recurrent neural networks<\/a> (RNNs), which can then be employed using TensorFlow for applications that recognize handwriting, faces, and speech. RNNs can be built to apply to familiar types of interactions.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Deep-Learning-Using-TensorFlow-recurrent-neural-networks-v1.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Deep-Learning-Using-TensorFlow-recurrent-neural-networks-v1.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-32245\" \/><\/a><\/center><\/p>\n<p>What is more, there are <a href=\"https:\/\/www.altoros.com\/blog\/text-prediction-with-tensorflow-and-long-short-term-memory-in-six-steps\/\">long short-term memory<\/a> networks, with more cells than that of a standard RNN and capacity to prosess more input.<\/p>\n<p><center><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/deep-learning-using-tensorflow-and-long-short-term-memory-v1.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/deep-learning-using-tensorflow-and-long-short-term-memory-v1.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-32242\" \/><\/a><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Four_TensorFlow_object_types\"><\/span>Four TensorFlow object types<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Dipendra then explained how TensorFlow can be used to create four types of objects that differ it from other frameworks:<\/p>\n<ul>\n<li style=\"margin-bottom: 6px;\"><strong>Sessions.<\/strong> A session encapsulates the environment in which objects are evaluated.<\/li>\n<li style=\"margin-bottom: 6px;\"><strong>Computational graphs.<\/strong> A construction phase in building a TensorFlow app involves assembling graphs, along with a phase to execute ops in the graph.<\/li>\n<li style=\"margin-bottom: 6px;\"><strong>Variables.<\/strong> Hold and update parameters are included as TensorFlow variables.<\/li>\n<li><strong>Placeholders.<\/strong> These are dummy nodes that provide data entry points to the computational graphs.<\/li>\n<\/ul>\n<p>He also provided sample code for each of the objects created.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-computational-graph-v1.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/tensorflow-computational-graph-v1.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-32249\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Metaframeworks_for_TensorFlow\"><\/span>Metaframeworks for TensorFlow<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>In the final part of his webinar, Dipendra enumerated several metaframeworks for TensorFlow:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/building-a-keras-based-image-classifier-using-tensorflow-for-a-back-end\/\">Keras<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/introduction-to-skflow-and-tensorflow\/\">Skflow<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/google\/prettytensor\" target=\"_blank\">Pretty Tensor<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/tensorflow\/models\/blob\/master\/inception\/inception\/slim\/README.md\" target=\"_blank\">TF-Slim<\/a><\/li>\n<\/ul>\n<p>The latter is described as a \u201clightweight library for defining, training, and evaluating complex models.\u201d He said it&#8217;s easy enough to use, through a simple import command, is supported by Google, and offers a \u201csimple and compact way to define model architectures.\u201d Furthermore, with TF-Slim your code gets significantly shorter.<\/p>\n<p><a href=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/defining-a-model-using-tensorflow-slim-v1.png\"><img decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/defining-a-model-using-tensorflow-slim-v1.png\" alt=\"\" width=\"640\" class=\"aligncenter size-full wp-image-32246\" \/><\/a><\/p>\n<p>In the end, Dipendra said that \u201cdeep learning is not magic,\u201d but the result of a long-term focused effort at Google that is now being complemented by a vibrant open-source community.<\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Want_details\"><\/span>Want details?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Dipendra concluded the webinar by providing copious other code and some demos. Find the Python notebooks for MNIST image classification\u2014using the <a href=\"https:\/\/pyimagesearch.com\/2016\/08\/01\/lenet-convolutional-neural-network-in-python\/\" target=\"_blank\">LeNet architecture<\/a> with TensorFlow and TF-Slim\u2014at <a href=\"https:\/\/github.com\/dipendra009\/MNIST_TF-Slim\" target=\"_blank\">this GitHub repo<\/a>.<\/p>\n<p>You can check out a <a href=\"https:\/\/www.altoros.com\/events\/deep-learning-using-tensorflow-and-tensorflow-slim\/#get_record\" target=\"_blank\">video recording<\/a> of the webinar.<\/p>\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=\"https:\/\/www.slideshare.net\/slideshow\/embed_code\/key\/7BRogSCZcTU6Fs\" width=\"427\" height=\"356\" 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\/under-the-hood-mechanisms-of-neural-networks-with-tensorflow\/\" target=\"_blank\">Under-the-Hood Mechanisms of Neural Networks with TensorFlow<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/analyzing-text-and-generating-content-with-neural-networks-and-tensorflow\/\">Analyzing Text and Generating Content with Neural Networks and TensorFlow<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/using-convolutional-neural-networks-and-tensorflow-for-image-classification\/\">Using Convolutional Neural Networks and TensorFlow for Image Classification<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/text-prediction-with-tensorflow-and-long-short-term-memory-in-six-steps\/\">Text Prediction with TensorFlow and Long Short-Term Memory\u2014in Six Steps<\/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\/dipendra009\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Dipendra-Jha-bio.png\" alt=\"Dipendra Jha, bio\" width=\"150\" height=\"150\" class=\"aligncenter size-full wp-image-19299\" \/><\/a><\/div>\n<div style=\"width: 600px;\">\n<p style=\"font-size: 14px;\"><a href=\"https:\/\/www.linkedin.com\/in\/dipendra009\">Dipendra Jha<\/a> is a PhD candidate in Computer Science at Northwestern University. He is exploring the field of deep learning and machine learning using high-performance computing systems in the CUCIS lab. His current research focuses on building deep learning models with dynamic architectures using parallelization on CPU and GPU. In addition, Dipendra is working on creating scalable machine learning models that can be applied to computer vision, natural language processing, social media analytics, and materials science.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Deep learning gaining its momentum<\/p>\n<p>Google CEO Sundar Pichai has called machine Learning (ML) \u201ca core transformative way by which we are rethinking everything we are doing.\u201d In this spirit, Google open-sourced its TensorFlow \u201cmachine intelligence\u201d technology in November 2015.<\/p>\n<p id=\"caption-attachment-32248\" class=\"wp-caption-text\">Dipendra Jha<\/p>\n<p>With the technology gaining its momentum in 2016, Dipendra [&#8230;]<\/p>\n","protected":false},"author":9,"featured_media":32254,"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-32240","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>Introduction to Neural Networks and Metaframeworks with TensorFlow | Altoros<\/title>\n<meta name=\"description\" content=\"This blog post highlights what it takes to train a recurrent \/ convolutional neural network, explores metaframeworks, identifies four unique object types, etc.\" \/>\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\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introduction to Neural Networks and Metaframeworks with TensorFlow | Altoros\" \/>\n<meta property=\"og:description\" content=\"Deep learning gaining its momentum Google CEO Sundar Pichai has called machine Learning (ML) \u201ca core transformative way by which we are rethinking everything we are doing.\u201d In this spirit, Google open-sourced its TensorFlow \u201cmachine intelligence\u201d technology in November 2015. Dipendra Jha With the technology gaining its momentum in 2016, Dipendra [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2017-01-05T15:51:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-08-01T14:09:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Neural-Networks-Meta-Frameworks-Deep-Learning-TensorFlow.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=\"Roger Strukhoff\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Roger Strukhoff\" \/>\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\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/\",\"name\":\"Introduction to Neural Networks and Metaframeworks with TensorFlow | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Neural-Networks-Meta-Frameworks-Deep-Learning-TensorFlow.gif\",\"datePublished\":\"2017-01-05T15:51:39+00:00\",\"dateModified\":\"2018-08-01T14:09:15+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/56ea20d6f280f7a442e89e5884b06fd8\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Neural-Networks-Meta-Frameworks-Deep-Learning-TensorFlow.gif\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Neural-Networks-Meta-Frameworks-Deep-Learning-TensorFlow.gif\",\"width\":640,\"height\":360},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introduction to Neural Networks and Metaframeworks with TensorFlow\"}]},{\"@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\/56ea20d6f280f7a442e89e5884b06fd8\",\"name\":\"Roger Strukhoff\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/03\/roger_strukhoff_user_icon-150x150.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/03\/roger_strukhoff_user_icon-150x150.jpg\",\"caption\":\"Roger Strukhoff\"},\"description\":\"Roger Strukhoff is Director of Research at Altoros. He also serves as Executive Director of the Tau Institute for Global ICT Research, Conference Chair of Cloud Expo and Things Expo, Co-Chair of the Big Data World Forum, and Open-Source Chair for the global DCD Converged conference series. He received his BA from Knox College, and conducted MBA studies at California State University\/East Bay. Previously in his career, he was VP of New Products at International Data Group and Director of Global Publications at TIBCO Software.\",\"url\":\"https:\/\/www.altoros.com\/blog\/author\/rstrukhoff\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introduction to Neural Networks and Metaframeworks with TensorFlow | Altoros","description":"This blog post highlights what it takes to train a recurrent \/ convolutional neural network, explores metaframeworks, identifies four unique object types, etc.","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\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/","og_locale":"en_US","og_type":"article","og_title":"Introduction to Neural Networks and Metaframeworks with TensorFlow | Altoros","og_description":"Deep learning gaining its momentum Google CEO Sundar Pichai has called machine Learning (ML) \u201ca core transformative way by which we are rethinking everything we are doing.\u201d In this spirit, Google open-sourced its TensorFlow \u201cmachine intelligence\u201d technology in November 2015. Dipendra Jha With the technology gaining its momentum in 2016, Dipendra [...]","og_url":"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/","og_site_name":"Altoros","article_published_time":"2017-01-05T15:51:39+00:00","article_modified_time":"2018-08-01T14:09:15+00:00","og_image":[{"width":640,"height":360,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Neural-Networks-Meta-Frameworks-Deep-Learning-TensorFlow.gif","type":"image\/gif"}],"author":"Roger Strukhoff","twitter_misc":{"Written by":"Roger Strukhoff","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/","url":"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/","name":"Introduction to Neural Networks and Metaframeworks with TensorFlow | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Neural-Networks-Meta-Frameworks-Deep-Learning-TensorFlow.gif","datePublished":"2017-01-05T15:51:39+00:00","dateModified":"2018-08-01T14:09:15+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/56ea20d6f280f7a442e89e5884b06fd8"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Neural-Networks-Meta-Frameworks-Deep-Learning-TensorFlow.gif","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/01\/Neural-Networks-Meta-Frameworks-Deep-Learning-TensorFlow.gif","width":640,"height":360},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/introduction-to-neural-networks-and-metaframeworks-with-tensorflow\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introduction to Neural Networks and Metaframeworks with TensorFlow"}]},{"@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\/56ea20d6f280f7a442e89e5884b06fd8","name":"Roger Strukhoff","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/03\/roger_strukhoff_user_icon-150x150.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2016\/03\/roger_strukhoff_user_icon-150x150.jpg","caption":"Roger Strukhoff"},"description":"Roger Strukhoff is Director of Research at Altoros. He also serves as Executive Director of the Tau Institute for Global ICT Research, Conference Chair of Cloud Expo and Things Expo, Co-Chair of the Big Data World Forum, and Open-Source Chair for the global DCD Converged conference series. He received his BA from Knox College, and conducted MBA studies at California State University\/East Bay. Previously in his career, he was VP of New Products at International Data Group and Director of Global Publications at TIBCO Software.","url":"https:\/\/www.altoros.com\/blog\/author\/rstrukhoff\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/32240","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\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=32240"}],"version-history":[{"count":7,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/32240\/revisions"}],"predecessor-version":[{"id":32259,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/32240\/revisions\/32259"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/32254"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=32240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=32240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=32240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}