Skip to content

Commit ba78f74

Browse files
committed
Updated Readme, Added Assets, Build Script
1 parent 59f9dfa commit ba78f74

File tree

8 files changed

+203
-3
lines changed

8 files changed

+203
-3
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## Version 0.1.0 Beta - 2021-04-06
99
### Added
10+
- Dockerfile
11+
- Launch Script (Dependency: [GNU Parallel](https://www.gnu.org/software/parallel/))
12+
- Automatic Tensorboard Initialization (Using the Launch Script) on Port 6006
1013
- **Frontend**:
1114
- Streamlit Dashboard For Easy Training and Visualization
12-
- Epoch Count and Batch Progress Bar
15+
- Epoch Count and Batch Progress Bar with Training Status Message
1316
- Live Training & Validation Loss & Accuracy Plots on the dashboard using Plot.ly Graphs
1417
- Training and Validation Data Directory
1518
- Model Backbone Selector
@@ -20,6 +23,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2023
- Input Image Shape Selector
2124
- Training Precision Selector
2225
- Training Button
26+
- Status Update with Final Validation Accuracy and Balloons Animation on Completion
2327
- **Data Loader**:
2428
- Optimized Tf.Data implementation for maximum GPU usage
2529
- Automatically handle errors such as corrupted images

README.md

Lines changed: 197 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,197 @@
1-
# Zero-Code-TF-Classifier
2-
A Dashboard based Image Classifier that does not require any programming
1+
[![Contributors][contributors-shield]][contributors-url]
2+
[![Forks][forks-shield]][forks-url]
3+
[![Stargazers][stars-shield]][stars-url]
4+
[![Issues][issues-shield]][issues-url]
5+
[![MIT License][license-shield]][license-url]
6+
[![LinkedIn][linkedin-shield]][linkedin-url]
7+
8+
<!-- PROJECT LOGO -->
9+
<br />
10+
<p align="center">
11+
<img src="assets/deep-learning.png" alt="Logo" width="150" height="150">
12+
13+
<h2 align="center">Zero Code TF Image Classification Trainer</h2>
14+
15+
<p align="center">
16+
Start Training a State of the Art Image Classifier within Minutes with Zero Coding Knowledge
17+
<br />
18+
<a href="http://hub.docker.com/">Docker Image</a>
19+
·
20+
<a href="https://github.com/animikhaich/Zero-Code-TF-Classifier/issues/new">Report Bug</a>
21+
·
22+
<a href="https://github.com/animikhaich/Zero-Code-TF-Classifier/issues/new">Request Feature</a>
23+
</p>
24+
</p>
25+
<p align="center">
26+
<img src="assets/capture-complete.png" alt="Demo GIF">
27+
</p>
28+
<!-- TABLE OF CONTENTS -->
29+
30+
## Table of Contents
31+
32+
- [Table of Contents](#table-of-contents)
33+
- [About The Project](#about-the-project)
34+
- [Features](#features)
35+
- [Hardware Requirements](#hardware-requirements)
36+
- [Hardware used for Development and Testing](#hardware-used-for-development-and-testing)
37+
- [Minimum Hardware Requirements](#minimum-hardware-requirements)
38+
- [Getting Started](#getting-started)
39+
- [Prerequisites](#prerequisites)
40+
- [Built With](#built-with)
41+
- [Setup and Usage](#setup-and-usage)
42+
- [Changelog](#changelog)
43+
- [Roadmap](#roadmap)
44+
- [Contributing](#contributing)
45+
- [License](#license)
46+
- [Contact](#contact)
47+
- [Animikh Aich](#animikh-aich)
48+
49+
<!-- ABOUT THE PROJECT -->
50+
51+
## About The Project
52+
53+
Don't know How to Write Complex Python Programs? Feeling Too Lazy to code a complete Deep Learning Training Pipeline Again? Need to Quickly Prototype a Image Classification Model?
54+
55+
Okay, Let's get to the main part. This is a **Containerized Deep Learning-based Image Classifier Training Tool** that allows anybody with some basic understanding of Hyperparameter Tuning to start training a Image Classification Model.
56+
57+
For the Developer/Contributor: The code is easy to maintain and work with. No Added Complexity. Anyone can download and build a Docker Image to get it up and running with the build script.
58+
59+
## Features
60+
61+
- **Zero Coding Required** - I have said this enough, I will repeat one last time: No need to touch any programming language, just a few clicks and start training!
62+
- **Easy to use UI Interface** - Built with Streamlit, it is a very user friendly, straight forward UI that anybody can use with ease. Just a few selects and a few sliders, and start training. Simple!
63+
- **Live and Interactive Plots** - Want to know how your training is progressing? Easy! Visualize and compare the results live, on your dashboard and watch the exponentially decaying loss curve build up from scratch!
64+
65+
If you want to go in-depth with the Technical Details, then there are too many to list here. I would invite you to check out the [Changelog](CHANGELOG.md) where every feature is mentioned in details.
66+
67+
## Hardware Requirements
68+
69+
We recommend an [Nvidia GPU](https://www.nvidia.com/en-gb/graphics-cards/) for Training, However, it can work with CPUs as well (Not Recommended)
70+
71+
[Google Cloud TPUs](https://cloud.google.com/tpu) are Supported as per the code, however, the same has not been tested.
72+
73+
### Hardware used for Development and Testing
74+
75+
- **CPU:** AMD Ryzen 7 3700X - 8 Cores 16 Threads
76+
- **GPU:** Nvidia GeForce RTX 2080 Ti 11 GB
77+
- **RAM:** 32 GB DDR4 @ 3200 MHz
78+
- **Storage:** 1 TB NVMe SSD
79+
- **OS:** Ubuntu 20.10
80+
81+
The above is just used for development and by no means is necessary to run this application. The Minimum Hardware Requirements are given in the next section
82+
83+
### Minimum Hardware Requirements
84+
85+
- **CPU:** AMD/Intel 4 Core CPU (Intel Core i3 4th Gen or better)
86+
- **GPU:** Nvidia GeForce GTX 1650 4 GB (You can go lower, but I would not recommend it)
87+
- **RAM:** 8 GB (Recommended 16 GB)
88+
- **Storage:** Whatever is required for Dataset Storage + 10 GB for Docker Image
89+
- **OS:** Any Linux Distribution
90+
91+
## Getting Started
92+
93+
### Prerequisites
94+
95+
- [Docker](https://www.docker.com/)
96+
- [Nvidia Docker](https://github.com/NVIDIA/nvidia-docker)
97+
- [Python 3](https://www.python.org/)
98+
- [Git](https://git-scm.com/)
99+
100+
### Built With
101+
102+
- [Streamlit](https://streamlit.io/)
103+
- [Tensorflow](https://www.tensorflow.org/)
104+
105+
## Setup and Usage
106+
107+
1. Install [Docker Engine](https://docs.docker.com/engine/install/)
108+
2. Install [Nvidia Docker Engine](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html) (Required only for System with Nvidia GPU)
109+
3. Set up the Dataset Structure:
110+
111+
```sh
112+
.
113+
├── Training
114+
│   ├── class_name_1
115+
│ │   └── *.jpg
116+
│   ├── class_name_2
117+
│ │   └── *.jpg
118+
│   ├── class_name_3
119+
│ │   └── *.jpg
120+
│   └── class_name_4
121+
│    └── *.jpg
122+
└── Validation
123+
   ├── class_name_1
124+
│   └── *.jpg
125+
   ├── class_name_2
126+
│   └── *.jpg
127+
   ├── class_name_3
128+
│   └── *.jpg
129+
   └── class_name_4
130+
   └── *.jpg
131+
```
132+
133+
4. There are two methods:
134+
- Pull the Image from Docker Hub
135+
- Clone the Repo and Build the Docker Image using the [build script](build.sh)
136+
5. Once the Docker Image is Built/Pulled, run the image using the following command:
137+
138+
```sh
139+
docker run -it --runtime nvidia --net host -v /path/to/dataset:/data <image-name>
140+
```
141+
142+
6. After training the trained weights can be found at: `/app/model/weights` Inside the Container
143+
7. After training the Tensorboard Logs can be found at: `/app/logs/tensorboard` Inside the Container
144+
8. You can use `docker cp <container-name/id>:<path-inside-container> <path-on-host-machine>` to get the weights and logs out. Further details can be found here: [Docker cp Docs](https://docs.docker.com/engine/reference/commandline/cp/)
145+
146+
147+
## Changelog
148+
149+
See the [Changelog](CHANGELOG.md).
150+
151+
152+
## Roadmap
153+
154+
See the [Open Issues](https://github.com/animikhaich/Zero-Code-TF-Classifier/issues?q=is%3Aopen) for a list of proposed features (and known issues).
155+
156+
See the [Changelog](CHANGELOG.md) a lost of changes currently in development.
157+
158+
159+
## Contributing
160+
161+
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.
162+
163+
1. Fork the Project
164+
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
165+
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
166+
4. Push to the Branch (`git push origin feature/AmazingFeature`)
167+
5. Open a Pull Request
168+
169+
170+
## License
171+
172+
Distributed under the MIT License. See [LICENSE](LICENSE.md) for more information.
173+
174+
175+
## Contact
176+
177+
#### Animikh Aich
178+
179+
- Website: [Animikh Aich - Website](http://www.animikh.me/)
180+
- LinkedIn: [animikh-aich](https://www.linkedin.com/in/animikh-aich/)
181+
182+
- Twitter: [@AichAnimikh](https://twitter.com/AichAnimikh)
183+
184+
185+
[contributors-shield]: https://img.shields.io/github/contributors/animikhaich/Zero-Code-TF-Classifier.svg?style=flat-square
186+
[contributors-url]: https://github.com/animikhaich/Zero-Code-TF-Classifier/graphs/contributors
187+
[forks-shield]: https://img.shields.io/github/forks/animikhaich/Zero-Code-TF-Classifier.svg?style=flat-square
188+
[forks-url]: https://github.com/animikhaich/Zero-Code-TF-Classifier/network/members
189+
[stars-shield]: https://img.shields.io/github/stars/animikhaich/Zero-Code-TF-Classifier.svg?style=flat-square
190+
[stars-url]: https://github.com/animikhaich/Zero-Code-TF-Classifier/stargazers
191+
[issues-shield]: https://img.shields.io/github/issues/animikhaich/Zero-Code-TF-Classifier.svg?style=flat-square
192+
[issues-url]: https://github.com/animikhaich/Zero-Code-TF-Classifier/issues
193+
[license-shield]: https://img.shields.io/github/license/animikhaich/Zero-Code-TF-Classifier.svg?style=flat-square
194+
[license-url]: https://github.com/animikhaich/Zero-Code-TF-Classifier/blob/master/LICENSE.md
195+
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=flat-square&logo=linkedin&colorB=555
196+
[linkedin-url]: https://linkedin.com/in/animikh-aich/
197+
[product-screenshot]: assets/face-blur-demo.gif

assets/capture-complete.png

120 KB
Loading

assets/capture-graphs.png

43.1 KB
Loading

assets/capture-in-progress.png

124 KB
Loading

assets/capture-progress.png

20.3 KB
Loading

assets/deep-learning.png

13 KB
Loading

build.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
docker build . -t zero-code-tf-classifier

0 commit comments

Comments
 (0)