Book Image

Mastering TensorFlow 1.x

Book Image

Mastering TensorFlow 1.x

Overview of this book

TensorFlow is the most popular numerical computation library built from the ground up for distributed, cloud, and mobile environments. TensorFlow represents the data as tensors and the computation as graphs. This book is a comprehensive guide that lets you explore the advanced features of TensorFlow 1.x. Gain insight into TensorFlow Core, Keras, TF Estimators, TFLearn, TF Slim, Pretty Tensor, and Sonnet. Leverage the power of TensorFlow and Keras to build deep learning models, using concepts such as transfer learning, generative adversarial networks, and deep reinforcement learning. Throughout the book, you will obtain hands-on experience with varied datasets, such as MNIST, CIFAR-10, PTB, text8, and COCO-Images. You will learn the advanced features of TensorFlow1.x, such as distributed TensorFlow with TF Clusters, deploy production models with TensorFlow Serving, and build and deploy TensorFlow models for mobile and embedded devices on Android and iOS platforms. You will see how to call TensorFlow and Keras API within the R statistical software, and learn the required techniques for debugging when the TensorFlow API-based code does not work as expected. The book helps you obtain in-depth knowledge of TensorFlow, making you the go-to person for solving artificial intelligence problems. By the end of this guide, you will have mastered the offerings of TensorFlow and Keras, and gained the skills you need to build smarter, faster, and efficient machine learning and deep learning systems.
Table of Contents (21 chapters)
19
Tensor Processing Units

Simple RNN in TensorFlow

The workflow to define and train a simple RNN in TensorFlow is as follows:

  1. Define the hyper-parameters for the model:
state_size = 4
n_epochs = 100
n_timesteps = n_x
learning_rate = 0.1

The new hyper-parameter here is the state_size. The state_size represents the number of weight vectors of an RNN cell.

  1. Define the placeholders for X and Y parameters for the model. The shape of X placeholder is (batch_size, number_of_input_timesteps, number_of_inputs) and the shape of Y placeholder is (batch_size, number_of_output_timesteps, number_of_outputs). For batch_size, we use None so that we can input the batch of any size later.
X_p = tf.placeholder(tf.float32, [None, n_timesteps, n_x_vars], 
name='X_p')
Y_p = tf.placeholder(tf.float32, [None, n_timesteps, n_y_vars],
name='Y_p')
  1. Transform the input placeholder X_p into a list of tensors...