Introducing the BMW-TensorFlow-Training-GUI Project
The BMW-TensorFlow-Training-GUI is a streamlined, user-friendly tool designed for Linux users, enabling them to train state-of-the-art deep learning models with minimal configuration. This project is built on the TensorFlow Object Detection API and leverages TensorFlow version 2.5.0 to make model training accessible and easy, even for those with limited experience in deep learning.
Key Features
-
Seamless Training Experience: Users simply need to supply a labeled dataset to initiate training immediately. The tool also offers real-time monitoring with TensorBoard, making it easier to track model progress.
-
Inference API: After training, users can test their model using a built-in REST API, further simplifying the development workflow.
-
Easy Dataset Annotation: By utilizing the BMW-Labeltool-lite, users can label their datasets, which can then be directly used for training purposes.
-
Wide Network Support: Integrating the TensorFlow Model Zoo, this tool allows the use of pre-trained networks, notably on the COCO dataset, ensuring users can benefit from high-quality initial model weights.
-
Versatile Environment Support: The project supports both CPU and GPU configurations (up to two GPUs), providing flexibility based on available hardware resources.
-
Simplified Installation and Setup: Comprehensive support for Ubuntu 18.04 users with automated scripts available for ensuring all dependencies such as Docker, NVIDIA drivers, and Docker Compose are correctly set up.
Getting Started
Prerequisites
To effectively run the BMW-TensorFlow-Training-GUI, ensure you have:
- Ubuntu 18.04
- Necessary NVIDIA drivers (Version 418.x or higher)
- Docker CE and NVIDIA Docker 2
- Docker-Compose
Installation Process
The installation is simplified with two main approaches depending on user preference: automated and manual.
-
Automated Setup: Uses a setup script (
setup_solution_parameters.sh
) which checks and installs all necessary dependencies. -
Manual Setup: Offers a step-by-step guide to manually verify and install Docker, NVIDIA Docker, and configure the environment settings.
Dataset Structure
The dataset should be organized in a specific folder structure under datasets/
. An example is shown below:
datasets/
├── sample_dataset/
├── images/
├── labels/
└── objectclasses.json
- Labeling Support: The BMW-Labeltool-Lite tool can create JSON format labels suitable for training.
Building and Running the Solution
The project can be built and run in either GPU or CPU mode using Docker Compose files (build_gpu.yml
, build_cpu.yml
, run_gpu.yml
, run_cpu.yml
).
- Build Command for GPU:
docker-compose -f build_gpu.yml build
- Build Command for CPU:
docker-compose -f build_cpu.yml build
- Run Command for GPU:
docker-compose -f run_gpu.yml up
- Run Command for CPU:
docker-compose -f run_cpu.yml up
Project Usage
Once the application is deployed:
-
Access the Application: Use a web browser to navigate to
localhost:4200
or the appropriate machine IP to manage model training and testing. -
Dataset Preparation: Ensure the dataset is ready for training following the specified structure.
-
Model Training and Monitoring: Specify general settings, select hyperparameters, and monitor training progress through TensorBoard.
-
Status and Update: Track the job status to ensure the process completes successfully and download the model for testing using Swagger API.
-
Post-training Management: You can stop or delete a model's container as needed once training is completed or when interruptions are required.
Tips and Known Issues
The project documentation provides additional guidelines for optimizing training workflows and handling potential issues like incorrect dataset structures, job initiation errors, and handling TensorBoard navigation troubles.
Conclusion
BMW-TensorFlow-Training-GUI is designed to democratize deep learning model training, providing a comprehensive, user-friendly platform that bridges the gap between machine learning expertise and practical application needs. Whether you're a beginner or an experienced data scientist, this project offers a robust toolset to develop, monitor, and deploy TensorFlow models effectively.