# Project Page

TensorFlow-World-Resources -## Table of Contents

### Introduction

The purpose of this project is to introduce a shortcut to developers and researcher for finding useful resources about TensorFlow.

#### Motivation

There are different motivations for this open source project.

##### Why using TensorFlow?

A deep learning is of great interest these days, the crucial necessity for rapid and optimized implementation of the algorithms and designing architectures is the software environment. TensorFlow is designed to facilitate this goal. The strong advantage of TensorFlow is it flexibility is designing highly modular model which also can be a disadvantage too for beginners since lots of the pieces must be considered together for creating the model. This issue has been facilitated as well by developing high-level APIs such as Keras and Slim which gather lots of the design puzzle pieces. The interesting point about TensorFlow is that **its trace can be found anywhere these days**. Lots of the researchers and developers are using it and *its community is growing with the speed of light*! So the possible issues can be overcame easily since they might be the issues of lots of other people considering a large number of people involved in TensorFlow community.

##### What's the point of this open source project?

There other similar repositories similar to this repository and are very comprehensive and useful and to be honest they made me ponder if there is a necessity for this repository! A great example is awesome-tensorflow repository which is a curated list of different TensorFlow resources.

**The point of this repository is that the resources are being targeted**. The organization of the resources is such that the user can easily find the things he/she is looking for. We divided the resources to a large number of categories that in the beginning one may have a headache!!! However, if someone knows what is being located, it is very easy to find the most related resources. Even if someone doesn't know what to look for, in the beginning, the general resources have been provided.

#### How to make the most of this effort

The written and visual resources have been split. Moreover, As one can search in the documentation, the number of categories might look to be too much. For finding the most relevant resources, please at first look through the general resources.

### Entrance to TensorFlow World

In this section, different TensorFlow topics and their associated resources will be addressed.

#### Installation

First of all, the TensorFlow must be installed!

- Installing TensorFlow: Official TensorFLow installation
- Install TensorFlow from the source: A comprehensive guide on how to install TensorFlow from the source using python/anaconda
- TensorFlow Installation: A short TensorFlow installation guide powered by NVIDIA
- 7 SIMPLE STEPS TO INSTALL TENSORFLOW ON WINDOWS: A concise tutorial for installing TensorFlow on Windows

- Install TensorFlow on Ubuntu: A comprehensive tutorial on how to install TensorFlow on Ubuntu
- Installation of TensorFlow: The video covers how to setup TensorFlow
- Installing CPU and GPU TensorFlow on Windows: A tutorial on TensorFlow installation for Windows
- Installing the GPU version of TensorFlow for making use of your CUDA GPU: A GPU-targeted TensoFlow installation

#### Getting Started

This part points to resources on how to start to code with TensorFLow

- Getting Started With TensorFlow Framework: This guide gets you started programming in TensorFlow
- learning TensorFlow Deep Learning:A great resource to start
- Welcome to TensorFlow World: A simple and concise start to TensorFLow

- Gentlest Introduction to Tensorflow
- TensorFlow in 5 Minutes
- Deep Learning with TensorFlow - Introduction to TensorFlow
- TensorFlow Tutorial (Sherry Moore, Google Brain)
- Deep Learning with Neural Networks and TensorFlow Introduction
- A fast with TensorFlow

#### Going Deeper in TensorFLow

Advanced machine learning users can go deeper in TensorFlow in order to *hit the root*. Scratching the surface may never take us too further!

- TensorFlow Mechanics: More experienced machine learning users can dig more in TensorFlow
- Advanced TensorFlow: Advanced Tutorials in TensorFlow
- We Need to Go Deeper: A Practical Guide to Tensorflow and Inception
- Wide and Deep Learning - Better Together with TensorFlow: A tutorial by Google Research Blog

- TensorFlow DeepDive: More experienced machine learning users can dig more in TensorFlow
- Go Deeper - Transfer Learning: TensorFlow and Deep Learning
- Distributed TensorFlow - Design Patterns and Best Practices: A talk that was given at the Advanced Spark and TensorFlow Meetup
- Distributed TensorFlow Guide
- Fundamentals of TensorFlow
- TensorFlow Wide and Deep - Advanced Classification the easy way
- Tensorflow and deep learning - without a PhD: A great tutorial on TensoFLow workflow

### Programming with TensorFlow

The references here, deal with the details of programming and writing TensorFlow code.

#### Reading data and input pipeline

The first part is always how to prepare data and how to provide the pipeline to feed it to TensorFlow. Usually providing the input pipeline can be complicated, even more than the structure design!

- Dataset API for TensorFlow Input Pipelines: A TensorFlow official documentation on
*Using the Dataset API for TensorFlow Input Pipelines* - TesnowFlow input pipeline: Input pipeline provided by Stanford.
- TensorFlow input pipeline example: A working example.
- TensorFlow Data Input: TensorFlow Data Input: Placeholders, Protobufs & Queues
- Reading data: The official documentation by the TensorFLow on how to read data
- basics of reading a CSV file: A tutorial on reading a CSV file
- Custom Data Readers: Official documentation on this how to define a reader.

- Tensorflow tutorial on TFRecords: A tutorial on how to transform data into TFRecords

- An introduction to TensorFlow queuing and threading: A tutorial on how to understand and create queues an efficient pipelines

#### Variables

Variables are supposed to hold the parameters and supersede by new values as the parameters are updated. Variables must be clearly set and initialized.

##### Creation, Initialization

- Variables Creation and Initialization: An official documentation on setting up variables
- Introduction to TensorFlow Variables - Creation and Initialization: This tutorial deals with defining and initializing TensorFlow variables
- Variables: An introduction to variables

##### Saving and restoring

- Saving and Loading Variables: The official documentation on saving and restoring variables
- save and restore Tensorflow models: A quick tutorial to save and restore Tensorflow models

##### Sharing Variables

- Sharing Variables: The official documentation on how to share variables

- Deep Learning with Tensorflow - Tensors and Variables: A Tensorflow tutorial for introducing Tensors, Variables and Placeholders
- Tensorflow Variables: A quick introduction to TensorFlow variables
- Save and Restore in TensorFlow: TensorFlow Tutorial on Save and Restore variables

#### TensorFlow Utilities

Different utilities empower TensorFlow for faster computation in a more monitored manner.

##### Supervisor

- Supervisor - Training Helper for Days-Long Trainings: The official documentation for TensorFLow Supervisor.
- Using TensorFlow Supervisor with TensorBoard summary groups: Using both TensorBoard and the Supervisor for profit
- Tensorflow example: A TensorFlow example using Supervisor.

##### TensorFlow Debugger

- TensorFlow Debugger (tfdbg) Command-Line-Interface Tutorial: Official documentation for using debugger for MNIST
- How to Use TensorFlow Debugger with tf.contrib.learn: A more high-level method to use the debugger.
- Debugging TensorFlow Codes: A Practical Guide for Debugging TensorFlow Codes
- Debug TensorFlow Models with tfdbg: A tutorial by Google Developers Blog

##### MetaGraphs

- Exporting and Importing a MetaGraph: Official TensorFlow documentation
- Model checkpointing using meta-graphs in TensorFlow: A working example

##### Tensorboard

- TensorBoard - Visualizing Learning: Official documentation by TensorFlow.
- TensorFlow Ops: Provided by Stanford
- Visualisation with TensorBoard: A tutorial on how to create and visualize a graph using TensorBoard
- Tensorboard: A brief tutorial on Tensorboard

- Hands-on TensorBoard (TensorFlow Dev Summit 2017): An introduction to the amazing things you can do with TensorBoard
- Tensorboard Explained in 5 Min: Providing the code for a simple handwritten character classifier in Python and visualizing it in Tensorboard
- How to Use Tensorboard: Going through a bunch of different features in Tensorboard

### TensorFlow Tutorials

This section is dedicated to provide tutorial resources on the implementation of different models with TensorFlow.

#### Linear and Logistic Regression

- TensorFlow Linear Model Tutorial: Using TF.Learn API in TensorFlow to solve a binary classification problem
- Linear Regression in Tensorflow: Predicting house prices in Boston area
- Linear regression with Tensorflow: Make use of tensorflow for numeric computation using data flow graphs
- Logistic Regression in Tensorflow with SMOTE: Implementation of Logistic Regression in TensorFlow
- A TensorFlow Tutorial - Email Classification: Using a simple logistic regression classifier
- Linear Regression using TensorFlow: Training a linear model by TensorFlow
- Logistic Regression using TensorFlow: Training a logistic regression by TensorFlow for binary classification

- Deep Learning with Tensorflow - Logistic Regression: A tutorial on Logistic Regression
- Deep Learning with Tensorflow - Linear Regression with TensorFlow: A tutorial on Linear Regression

#### Convolutional Neural Networks

- Convolutional Neural Networks: Official TensorFlow documentation
- Convolutional Neural Networks using TensorFlow: Training a classifier using convolutional neural networks
- Image classifier using convolutional neural network: Building a convolutional neural network based image classifier
- Convolutional Neural Network CNN with TensorFlow tutorial: It covers how to write a basic convolutional neural network within TensorFlow with Python
- Deep Learning CNNs in Tensorflow with GPUs: Designing the architecture of a convolutional neural network (CNN)

- Deep Learning with Neural Networks: Convolutional Neural Networks with TensorFlow
- TensorFlow Tutorial: Convolutional Neural Network
- Understanding Convolution with TensorFlow: A tutorial on Convolution operation with TensorFlow
- CNN - Deep Learning with Tensorflow: Convolutional Network with TensorFlow

#### Recurrent Neural Networks

- Recurrent Neural Networks: TensorFlow official documentation
- How to build a Recurrent Neural Network in TensorFlow: How to build a simple working Recurrent Neural Network in TensorFlow
- Recurrent Neural Networks in Tensorflow: Building a vanilla recurrent neural network (RNN) from the ground up in Tensorflow
- RNNs in Tensorflow - a Practical Guide and Undocumented Features: Going over some of the best practices for working with RNNs in Tensorflow
- RNN / LSTM cell example in TensorFlow and Python: Covering how to code a Recurrent Neural Network model with an LSTM in TensorFlow
- Sequence prediction using recurrent neural networks(LSTM) with TensorFlow: How to approximate a sequence of vectors using a recurrent neural networks
- TensorFlow RNN Tutorial: Recurrent Neural Networks for exploring time series and developing speech recognition capabilities

- Deep Learning with Neural Networks and TensorFlow: Recurrent Neural Networks (RNN)
- An Introduction to LSTMs in Tensorflow: A brief tutorial
- Deep Learning with Tensorflow - The Recurrent Neural Network Model: A tutorial on the Recurrent Neural Network Models
- Sequence Models and the RNN API: TensorFlow Dev Summit 2017
- RNN Example in Tensorflow: A quick tutorial

#### Autoencoders

- Deep Autoencoder with TensorFlow: An open source project
- Variational Autoencoder in TensorFlow: A tutorial on Variational Autoencoder
- Diving Into TensorFlow With Stacked Autoencoders: A nice brief tutorials
- Convolutional Autoencoders in Tensorflow: Implementing a single layer CAE
- Variational Autoencoder using Tensorflow: Facial expression low dimensional embedding

- Deep Learning with Tensorflow - Autoencoder Structure: Tutorial on Autoencoder models
- Deep Learning with Tensorflow - RBMs and Autoencoders: Tutorial on Restricted Boltzmann machines and AEs

#### Generative models

- Generative Adversarial Nets in TensorFlow: Implementing GAN using TensorFlow, with MNIST data
- Generative Adversarial Networks: A working example of Generative Adversarial Networks

- TensorFlow Tutorial - Adversarial Examples: A tutorial on a working example for generative models

#### Multiple GPUs

- Using GPUs: Official TensorFlow documentation
- Deep Learning with Multiple GPUs on Rescale: TensorFlow Tutorial

### TensorFlow Projects

This section is dedicated to provide resources that are mainly open source projects developed by TensorFlow. Those might be comprehensive tutorials on working example.

#### Comprehensive Tutorials

- TensorFlow-World: Concise and ready-to-use TensorFlow tutorials with detailed documentation
- TensorFlow-Tutorials: Introduction to deep learning based on Google's TensorFlow framework
- TensorFlow Tutorials: Organized tutorials in TensorFlow
- TensorFlow-Examples: Providing working examples in TensorFlow
- Tensorflow Tutorials using Jupyter Notebook: TensorFlow tutorials written in Python plus Jupyter Notebook

#### Models

- TensorFlow Models: Machine learning models implemented in TensorFlow
- Tensorflow VGG16 and VGG19: Implementation of VGG 16 and VGG 19 based on tensorflow-vgg16 and Caffe to Tensorflow
- ResNet in TensorFlow: Implementation of Deep Residual Learning for Image Recognition
- Inception in TensorFlow: Train the Inception v3 architecture
- A TensorFlow implementation of DeepMind WaveNet paper: TensorFlow implementation of the WaveNet generative neural network architecture for audio generation
- 3D Convolutional Neural Networks for Speaker Verification: Implementation of 3D Convolutional Neural Networks for Speaker Verification application in TensorFlow.
- Domain Transfer Network (DTN): The implementation of Unsupervised Cross-Domain Image Generation in TensorFlow
- Neural Style: The Neural Style algorithm implementation that synthesizes a pastiche
- SqueezeNet in TensorFlow: Tensorflow implementation of SqueezeNet

### Published Resources

This section is dedicated to provide published resources on TensorFlow, Such as websites, blogs, and books.

#### Online Courses and Documentations

- LearningTensorFlow: Beginner-level tutorials for a TensorFlow
- Deep Learning by Google: A free online course developed by Google and Udacity
- Tensorflow for Deep Learning Research: A comprehensive course by Stanford
- Creative Applications of Deep Learning with TensorFlow: A free online course on TensorFlow from Kadenze
- Deep Learning with TensorFlow Tutorial: In this TensorFlow course, you will be able to learn the basic concepts of TensorFlow

#### Books

- TensorFlow Machine Learning Cookbook: Quick guide to implementing TensorFlow in your day-to-day machine learning activities
- Deep Learning with TensorFlow: Throughout the book, you’ll learn how to implement deep learning algorithms for machine learning systems
- First contact with TensorFlow: An online book on TensorFlow
- Building Machine Learning Projects with TensorFlow: Learn how to implement TensorFlow in production
- Learning TensorFlow: This book is an end-to-end guide to TensorFlow
- Machine Learning with TensorFlow: Tackle common commercial machine learning problems with Google’s TensorFlow library
- Getting Started with TensorFlow: An easy-to-understand book on TensorFlow
- Hands-On Machine Learning with Scikit-Learn and TensorFlow: By using examples, theory, the book help to gain an understanding of the machine learning concepts
- Machine Learning with TensorFlow (MEAP): An introduction to the concepts of TensorFlow

### Contributing

*For typos, please do not create a pull request. Instead, declare them in issues or email the repository owner*. Please note we have a code of conduct, please follow it in all your interactions with the project.

#### Pull Request Process

Please consider the following criterions in order to help us in a better way:

- The pull request is mainly expected to be a link suggestion.
- Please make sure your suggested resources are not obsolete or broken.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build and creating a pull request.
- Add comments with details of changes to the interface, this includes new environment variables, exposed ports, useful file locations and container parameters.
- You may merge the Pull Request in once you have the sign-off of at least one other developer, or if you do not have permission to do that, you may request the owner to merge it for you if you believe all checks are passed.

#### Final Note

We are looking forward to your kind feedback. Please help us to improve this open source project and make our work better. For contribution, please create a pull request and we will investigate it promptly. Once again, we appreciate your kind feedback and support.