Skip to content
/ quickai Public

QuickAI is a Python library that makes it extremely easy to experiment with state-of-the-art Machine Learning models.

License

Notifications You must be signed in to change notification settings

geekjr/quickai

Repository files navigation

QuickAI logo

QuickAI is a Python library that makes it extremely easy to experiment with state-of-the-art Machine Learning models.

PyPI Counter
PyPI Counter
PyPI Counter
Github Stars

Note: Even if you are not using YOLO, you will still need a file in your curent working directory called coco.names. If you are not using YOLO, this file can be empty.

Announcement video

Announcement video

Demo https://deepnote.com/project/QuickAI-1r_4zvlyQMa2USJrIvB-kA/%2Fnotebook.ipynb

Motivation

When I started to get into more advanced Machine Learning, I started to see how these famous neural network architectures(such as EfficientNet), were doing amazing things. However, when I tried to implement these architectures to problems that I wanted to solve, I realized that it was not super easy to implement and quickly experiment with these architectures. That is where QuickAI came in. It allows for easy experimentation of many model architectures quickly.

Dependencies:

Tensorflow, PyTorch, Sklearn, Matplotlib, Numpy, and Hugging Face Transformers. You should install TensorFlow and PyTorch following the instructions from their respective websites.

Docker container:

To avoid setting up all the dependencies above, you can use the QuickAI Docker Container:

First pull the container: docker pull geekjr/quickai

Then run it:

  • CPU(on an Apple silicon Mac, you will need the --platform linux/amd64 flag and Rosetta 2 installed): docker run -it geekjr/quickai bash

  • GPU: docker run --gpus all -it geekjr/quickai bash

Why you should use QuickAI

QuickAI can reduce what would take tens of lines of code into 1-2 lines. This makes fast experimentation very easy and clean. For example, if you wanted to train EfficientNet on your own dataset, you would have to manually write the data loading, preprocessing, model definition and training code, which would be many lines of code. Whereas, with QuickAI, all of these steps happens automatically with just 1-2 lines of code.

The following models are currently supported:

  1. Image Classification

    • EfficientNet B0-B7
    • VGG16
    • VGG19
    • DenseNet121
    • DenseNet169
    • DenseNet201
    • Inception ResNet V2
    • Inception V3
    • MobileNet
    • MobileNet V2
    • MobileNet V3 Small & Large
    • ResNet 101
    • ResNet 101 V2
    • ResNet 152
    • ResNet 152 V2
    • ResNet 50
    • ResNet 50 V2
    • Xception
  2. Natural Language Processing

    • GPT-NEO 125M(Generation, Inference)
    • GPT-NEO 350M(Generation, Inference)
    • GPT-NEO 1.3B(Generation, Inference)
    • GPT-NEO 2.7B(Generation, Inference)
    • GPT-J 6B(Generation, Inference)-BETA
    • Distill BERT Cased(Q&A, Inference and Fine Tuning)
    • Distill BERT Uncased(Named Entity Recognition, Inference)
    • Distil BART (Summarization, Inference)
    • Distill BERT Uncased(Sentiment Analysis & Text/Token Classification, Inference and Fine Tuning)
  3. Object Detection

    • YOLOV4
    • YOLOV4 Tiny

Installation

pip install quickAI

How to use

Please see the examples folder for details. For the YOLOV4, you can download weights from here. Full documentation is in the wiki section of the repo.

Issues/Questions

If you encounter any bugs, please open a new issue so they can be corrected. If you have general questions, please use the discussion section.

Credits

Most of the code for the YOLO implementations were taken from "The AI Guy's" tensorflow-yolov4-tflite & YOLOv4-Cloud-Tutorial repos. Without this, the YOLO implementation would not be possible. Thank you!