# TensorFlow Examples

TensorFlow Tutorial with popular machine learning algorithms implementation. This tutorial was designed for easily diving into TensorFlow, through examples.

It is suitable for beginners who want to find clear and concise examples about TensorFlow. For readability, the tutorial includes both notebook and code with explanations.

## Tutorial index

#### 1 - Introduction

#### 2 - Basic Models

- Nearest Neighbor (notebook) (code)
- Linear Regression (notebook) (code)
- Logistic Regression (notebook) (code)

#### 3 - Neural Networks

- Multilayer Perceptron (notebook) (code)
- Convolutional Neural Network (notebook) (code)
- Recurrent Neural Network (LSTM) (notebook) (code)
- Bidirectional Recurrent Neural Network (LSTM) (notebook) (code)
- AutoEncoder (notebook) (code)

#### 4 - Utilities

- Save and Restore a model (notebook) (code)
- Tensorboard - Graph and loss visualization (notebook) (code)
- Tensorboard - Advanced visualization (code)

#### 5 - Multi GPU

## More Examples

The following examples are coming from TFLearn, a library that provides a simplified interface for TensorFlow. You can have a look, there are many examples and pre-built operations and layers.

## Basics

- Linear Regression. Implement a linear regression using TFLearn.
- Logical Operators. Implement logical operators with TFLearn (also includes a usage of ‘merge’).
- Weights Persistence. Save and Restore a model.
- Fine-Tuning. Fine-Tune a pre-trained model on a new task.
- Using HDF5. Use HDF5 to handle large datasets.
- Using DASK. Use DASK to handle large datasets.

## Extending Tensorflow

- Layers. Use TFLearn layers along with Tensorflow.
- Trainer. Use TFLearn trainer class to train any Tensorflow graph.
- Built-in Ops. Use TFLearn built-in operations along with Tensorflow.
- Summaries. Use TFLearn summarizers along with Tensorflow.
- Variables. Use TFLearn variables along with Tensorflow.

## Computer Vision

- Multi-layer perceptron. A multi-layer perceptron implementation for MNIST classification task.
- Convolutional Network (MNIST). A Convolutional neural network implementation for classifying MNIST dataset.
- Convolutional Network (CIFAR-10). A Convolutional neural network implementation for classifying CIFAR-10 dataset.
- Network in Network. ‘Network in Network’ implementation for classifying CIFAR-10 dataset.
- Alexnet. Apply Alexnet to Oxford Flowers 17 classification task.
- VGGNet. Apply VGG Network to Oxford Flowers 17 classification task.
- RNN Pixels. Use RNN (over sequence of pixels) to classify images.
- Highway Network. Highway Network implementation for classifying MNIST dataset.
- Highway Convolutional Network. Highway Convolutional Network implementation for classifying MNIST dataset.
- Residual Network (CIFAR-10). A residual network with shallow bottlenecks applied to CIFAR-10 classification task.
- Residual Network (MNIST). A residual network with deep bottlenecks applied to MNIST classification task.
- Auto Encoder. An auto encoder applied to MNIST handwritten digits.

## Natural Language Processing

- Recurrent Network (LSTM). Apply an LSTM to IMDB sentiment dataset classification task.
- Bi-Directional LSTM. Apply a bi-directional LSTM to IMDB sentiment dataset classification task.
- City Name Generation. Generates new US-cities name, using LSTM network.
- Shakespeare Scripts Generation. Generates new Shakespeare scripts, using LSTM network.

## Notebooks

- Spiral Classification Problem. TFLearn implementation of spiral classification problem from Stanford CS231n.

## Dependencies

```
tensorflow
numpy
matplotlib
cuda
tflearn (if using tflearn examples)
```

For more details about TensorFlow installation, you can check TensorFlow Installation Guide

## Dataset

Some examples require MNIST dataset for training and testing. Don’t worry, this dataset will automatically be downloaded when running examples (with input_data.py). MNIST is a database of handwritten digits, with 60,000 examples for training and 10,000 examples for testing. (Website: http://yann.lecun.com/exdb/mnist/)