The Diversity of TensorFlow: Wrappers, GPUs, Generative Adversarial Networks, etc.
Styling images and sorting cucumbers with TensorFlow
Starting his session with an overview of TensorFlow’s guts, Jo-fai Chow of H2O.ai enumerated a bunch of TensorFlow wrappers available:
- TFLearn with its simplified interface
- Keras that can run both on top of TensorFlow and Theano
- TensorFlow.rb, a Ruby wrapper
- TensorFlow.jl, a Julia wrapper
- TensorFlow for R, an R wrapper
In addition to there options, Jo-fai mentioned that it is even possible to train a neural network right in a browser. He then exemplified a number of scenarios where the library can be applied, including quite exotic use cases:
- neural style—a technique that allows for training a deep neural network to separate an artistic style from the image structure and combine it with the style / structure of another image
- building a system that automates the process of sorting cucumbers
“TensorFlow democratizes the power of deep learning.” —Jo-fai Chow, H2O.io
After that, the speaker gave an insight into the H2O platform—built by the company he works for as a data scientist. Using a wide mix of artificial intelligence and machine learning tools, the platforms enables the development of apps for predictive maintenance, fraud detection, auditing, credit scoring, user-based insurance, etc.
The company’s product catalog also features Deep Water, an open-source GPU-optimized solution on top of H2O.io. Combining the power of a few popular machine learning libraries (TensorFlow, Caffe, and MXNet), the solution offers a GPU-enabled playground for distributed deep learning. It enables developers to train user-defined or pre-defined deep learning models for image/video/sound/text classification from Flow, R, Python, Java, Scala, or REST API. With GPU, large-scale neural networks can be engaged to process terabytes of data.
Chech out Jo-fai’s presentation to see how it works. Here’s the code used for the demo of Deep Water and Iris.
Going convolutional with generative adversarial networks
Julien Launay of Ecole Normale Superieure focused on using generative adversarial networks (GAN) and TensorFlow to replicate and learn more about fracture patterns. (We have previously written about using GANs for generating content.)
After explaining how to train a GAN, Julien listed the issues one may face when working with these networks:
- hard to keep the discriminant / generator synchronized
- hard to prevent overfitting in the generator
- hard to ensure good convergence of the network
- outputs from the generator are noisy
So, he suggested going convolutional with deep convolutional GANs, motivating it with the following reasons:
- better results on images (spatial dependence, upsample / downsample)
- fewer parameters (usage of strides, shared parameters)
- closer to human brain
Julien also demonstrated how to tweak a deep convolutional GAN, visualize and manipulate convolutional filters, and optimize mutual information.
Join our group to get informed with upcoming events.
Want details? Watch the video!
- Building a Chatbot with TensorFlow and Keras
- Building a Keras-Based Image Classifier Using TensorFlow for a Back End
- TensorFlow in the Cloud: Accelerating Resources with Elastic GPUs
- Performance of Distributed TensorFlow: A Multi-Node and Multi-GPU Configuration
About the experts
Jo-fai Chow is a data scientist at H2O.ai. Before joining H2O, he was in the business intelligence team at Virgin Media where he developed data products to enable quick and smart business decisions. Jo-fai has a background in water engineering. Before his data science journey, he was an EngD researcher at STREAM Industrial Doctorate Centre working on machine learning techniques for drainage design optimization. Prior to that, Jo-fai was an asset management consultant specialized in data mining and constrained optimization for the utilities sector in UK and abroad.
Julien Launay is a civil servant student at Cachan’s École Normale Supérieure. He is pursuing a MS in Civil Engineering, with a personal focus on machine learning. His research project aims at building TensorFlow-based tools to study cracking patterns in concrete.