Easy-TensorFlow
The goal of this repository is to provide comprehensive tutorials for TensorFlow while maintaining the simplicity of the code.
Each tutorial includes a detailed explanation (written in .ipynb) format, as well as the source code (in .py format).
Table of Contents
Motivation
There is a necessity to address the motivations for this project. TensorFlow is one of the deep learning frameworks available with the largest community. This repository is dedicated to suggesting a simple path to learn TensorFlow.
Why use TensorFlow?
![_img/why_tensorflow.png](https://raw.githubusercontent.com/rdasxy/easy-tensorflow/master/_img/why_tensorflow.png)
We can summarize the pros as below:
- It’s developed and maintained by Google. As such, a continued support and development is ensured
- Very large and active community
- Low-level and high-level interfaces to network training
- Tensorboard is the powerful visualization suite which is developed to track both the network topology and performance, making debugging even simpler.
- Written in Python (even though some parts crucial for performance is implemented in C++) which is a very attractive language to read and develop in
- Multiple GPUs support. So you can freely run the code on different machines without having to stop or restart the program
- Faster model compilation than Theano-based options
- Faster compile times than Theano
- Is about more than deep learning. TensorFlow actually has tools to support reinforcement learning and other algorithms.
In addition to the aforementioned points, the large community of TensorFlow enrich the developers with the answer to almost all the questions one may encounter. Furthermore, since most of the developers are using TensorFlow for code development, having a hands-on on TensorFlow is a necessity these days.
Why this repository?
In most of the available projects on the web, one of the below issues exists:
- There is no or very limited explanation of what is happening in the code.
- Different parts are not connected in a meaningful way.
- The code implementation is too vague or complicated.
- The focus is on either advanced or elementary level of Tensorflow implementation.
In this project, we tried to connect parts from easy to advanced with detailed tutorials while keeping the code implementation as simple as possible.
TensorFlow Installation and Setup the Environment
The aim here is to explain how to install TensorFlow library "step by step" and on different operating systems. TensorFlow is a python library. Similar to many others, we tried installing many side packages and libraries and experienced lots of problems and errors.
In order to install TensorFlow please refer to the following link:
TensorFlow Tutorials
![_img/tensorflow.png](https://raw.githubusercontent.com/rdasxy/easy-tensorflow/master/_img/tensorflow.png)
The tutorials in this repository are partitioned into relevant categories.
# | topic | |
---|---|---|
0 | Installation | Code |
1 | Basics | Code |
2 | Logistic_Regression | Code |
3 | Feed_Forward_Neural_Network | Code |
4 | Tensorboard | Code |
5 | AutoEncoder | Code |
6 | Convolutional_Neural_Network | Code |
Some Useful Tutorials
- TensorFlow World - Simple and ready-to-use tutorials for TensorFlow
- TensorFlow Examples - TensorFlow tutorials and code examples for beginners
- Sungjoon's TensorFlow-101 - TensorFlow tutorials written in Python with Jupyter Notebook
- Terry Um’s TensorFlow Exercises - Re-create the codes from other TensorFlow examples
- Classification on time series - Recurrent Neural Network classification in TensorFlow with LSTM on cellphone sensor data
Contributing
When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. 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 code script suggestion or improvement.
- A pull request related to non-code-script sections is expected to make a significant difference in the documentation. Otherwise, it is expected to be announced in the issues section.
- 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 elaborate code inspections.