# Tensorflow

Tensorflow is a popular ML framework developed by Google that makes implementing optimized deep learning models very simple. Popular high-level APIs include Keras and TF Probability.

- 1.
- 1.
- 2.
- 3.

- 2.

Tensorflow (TF) is a powerful ML framework that lets us develop and train models that are computationally optimized and compatible with different processing units, including CPUs, GPUs, and the more recent TPUs.

In TF 1.x, the

*computational**, which maps out operation order and dependencies, is specified first, before any computations occur. This type of graph is commonly called a***graph****since it doesn't change during a***static graph***, which is when the graph is executed and values are computed.***session*Tensorflow graph visualized using Tensorboard

A TF computational graph is specified using a combination of these objects and operations:

are objects that are given information at the time of computation. Ex: the input layer of a neural network.*TF Placeholders*are the parameters that are evaluated during a session. Ex: weights and biases.*TF Variables*which*TF operations,**i.e.*turning classifications into integer representation) and nonlinear activation functions.

In addition to the graph, we also need to specify the training method and any functions to execute during training:

minimizes the specified loss function to iteratively update the TF variables.*Optimizer*are functions that are executed during training after a certain number of iterations. Popular callbacks include early stopping (*Callback functions**i.e.*determining when to stop training), using TensorBoard, etc.

Finally, to perform the computation, we start a TF session

**and feed the placeholders with our dataset.**With TF 2.x, there are no longer TF "sessions" and everything is executed eagerly.

Tensorboard is Tensorflow's visualization tool for viewing computational graphs, tracking variables & performance metrics, etc. Installation of Tensorflow includes TensorBoard. To launch the dashboard, run this on terminal and point the --logdir to the appropriate directory.

tensorboard --logdir=summaries

Open the link shown on the terminal (default: localhost:8888) on a web browser.

TensorBoard dashboard

Keras is a popular high-level API for building deep neural networks using prebuilt layers (

*i.e.*dense layers, convolutional layers, batch normalization layers, etc.). Keras is great for quickly building regular models, but can't accommodate custom operations like in Tensorflow/Pytorch.Another benefit of Keras is the abundance of pre-trained model architectures that are available for transfer learning.

Tensorflow Probability is a library for probabilistic deep learning models and includes useful tools for Variational Inference, Bayesian Neural Networks, MCMC, etc.

Last modified 3yr ago