A multi-functional library for full-stack Deep Learning. Simplifies Model Building, API development, and Model Deployment.

Overview

chitra

CodeFactor Maintainability Rating Reliability Rating Security Rating Coverage GitHub issues Documentation Status Discord

What is chitra?

chitra (चित्र) is a multi-functional library for full-stack Deep Learning. It simplifies Model Building, API development, and Model Deployment.

Components

arch

Load Image from Internet url, filepath or numpy array and plot Bounding Boxes on the images easily. Model Training and Explainable AI. Easily create UI for Machine Learning models or Rest API backend that can be deployed for serving ML Models in Production.

📌 Highlights:

🚘 Implementation Roadmap

  • One click deployment to serverless platform.

If you have more use case please raise an issue/PR with the feature you want. If you want to contribute, feel free to raise a PR. It doesn't need to be perfect. We will help you get there.

📀 Installation

Downloads Downloads GitHub License

Using pip (recommended)

  1. Minimum installation pip install -U chitra

  2. Full Installation pip install -U 'chitra[all]'

  3. Install for Training pip install -U 'chitra[nn]'

  4. Install for Serving pip install -U 'chitra[serve]'

From source

pip install git+https://github.com/aniketmaurya/[email protected]

Or,

git clone https://github.com/aniketmaurya/chitra.git
cd chitra
pip install .

🧑‍💻 Usage

Loading data for image classification

Chitra dataloader and datagenerator modules for loading data. dataloader is a minimal dataloader that returns tf.data.Dataset object. datagenerator provides flexibility to users on how they want to load and manipulate the data.

import numpy as np
import chitra
from chitra.dataloader import Clf
import matplotlib.pyplot as plt


clf_dl = Clf()
data = clf_dl.from_folder(cat_dog_path, target_shape=(224, 224))
clf_dl.show_batch(8, figsize=(8, 8))

Show Batch

Image datagenerator

Dataset class provides the flexibility to load image dataset by updating components of the class.

Components of Dataset class are:

  • image file generator
  • resizer
  • label generator
  • image loader

These components can be updated with custom function by the user according to their dataset structure. For example the Tiny Imagenet dataset is organized as-

train_folder/
.....folder1/
    .....file.txt
    .....folder2/
           .....image1.jpg
           .....image2.jpg
                     .
                     .
                     .
           ......imageN.jpg

The inbuilt file generator search for images on the folder1, now we can just update the image file generator and rest of the functionality will remain same.

Dataset also support progressive resizing of images.

Updating component

from chitra.datagenerator import Dataset

ds = Dataset(data_path)
# it will load the folders and NOT images
ds.filenames[:3]
Output
No item present in the image size list

['/Users/aniket/Pictures/data/tiny-imagenet-200/train/n02795169/n02795169_boxes.txt',
 '/Users/aniket/Pictures/data/tiny-imagenet-200/train/n02795169/images',
 '/Users/aniket/Pictures/data/tiny-imagenet-200/train/n02769748/images']
def load_files(path):
    return glob(f'{path}/*/images/*')


def get_label(path):
    return path.split('/')[-3]


ds.update_component('get_filenames', load_files)
ds.filenames[:3]
Output
get_filenames updated with <function load_files at 0x7fad6916d0e0>
No item present in the image size list

['/Users/aniket/Pictures/data/tiny-imagenet-200/train/n02795169/images/n02795169_369.JPEG',
 '/Users/aniket/Pictures/data/tiny-imagenet-200/train/n02795169/images/n02795169_386.JPEG',
 '/Users/aniket/Pictures/data/tiny-imagenet-200/train/n02795169/images/n02795169_105.JPEG']

Progressive resizing

It is the technique to sequentially resize all the images while training the CNNs on smaller to bigger image sizes. Progressive Resizing is described briefly in his terrific fastai course, “Practical Deep Learning for Coders”. A great way to use this technique is to train a model with smaller image size say 64x64, then use the weights of this model to train another model on images of size 128x128 and so on. Each larger-scale model incorporates the previous smaller-scale model layers and weights in its architecture. ~KDnuggets

image_sz_list = [(28, 28), (32, 32), (64, 64)]

ds = Dataset(data_path, image_size=image_sz_list)
ds.update_component('get_filenames', load_files)
ds.update_component('get_label', get_label)

# first call to generator
for img, label in ds.generator():
    print('first call to generator:', img.shape)
    break

# seconds call to generator
for img, label in ds.generator():
    print('seconds call to generator:', img.shape)
    break

# third call to generator
for img, label in ds.generator():
    print('third call to generator:', img.shape)
    break
Output
get_filenames updated with <function load_files at 0x7fad6916d0e0>
get_label updated with <function get_label at 0x7fad6916d8c0>

first call to generator: (28, 28, 3)
seconds call to generator: (32, 32, 3)
third call to generator: (64, 64, 3)

tf.data support

Creating a tf.data dataloader was never as easy as this one liner. It converts the Python generator into tf.data.Dataset for a faster data loading, prefetching, caching and everything provided by tf.data.

image_sz_list = [(28, 28), (32, 32), (64, 64)]

ds = Dataset(data_path, image_size=image_sz_list)
ds.update_component('get_filenames', load_files)
ds.update_component('get_label', get_label)

dl = ds.get_tf_dataset()

for e in dl.take(1):
    print(e[0].shape)

for e in dl.take(1):
    print(e[0].shape)

for e in dl.take(1):
    print(e[0].shape)
Output
get_filenames updated with <function load_files at 0x7fad6916d0e0>
get_label updated with <detn get_label at 0x7fad6916d8c0>
(28, 28, 3)
(32, 32, 3)
(64, 64, 3)

Trainer

The Trainer class inherits from tf.keras.Model, it contains everything that is required for training. It exposes trainer.cyclic_fit method which trains the model using Cyclic Learning rate discovered by Leslie Smith.

from chitra.trainer import Trainer, create_cnn
from chitra.datagenerator import Dataset


ds = Dataset(cat_dog_path, image_size=(224, 224))
model = create_cnn('mobilenetv2', num_classes=2, name='Cat_Dog_Model')
trainer = Trainer(ds, model)
# trainer.summary()
trainer.compile2(batch_size=8,
    optimizer=tf.keras.optimizers.SGD(1e-3, momentum=0.9, nesterov=True),
    lr_range=(1e-6, 1e-3),
    loss='binary_crossentropy',
    metrics=['binary_accuracy'])

trainer.cyclic_fit(epochs=5,
    batch_size=8,
    lr_range=(0.00001, 0.0001),
)
Training Loop... cyclic learning rate already set!
Epoch 1/5
1/1 [==============================] - 0s 14ms/step - loss: 6.4702 - binary_accuracy: 0.2500
Epoch 2/5
Returning the last set size which is: (224, 224)
1/1 [==============================] - 0s 965us/step - loss: 5.9033 - binary_accuracy: 0.5000
Epoch 3/5
Returning the last set size which is: (224, 224)
1/1 [==============================] - 0s 977us/step - loss: 5.9233 - binary_accuracy: 0.5000
Epoch 4/5
Returning the last set size which is: (224, 224)
1/1 [==============================] - 0s 979us/step - loss: 2.1408 - binary_accuracy: 0.7500
Epoch 5/5
Returning the last set size which is: (224, 224)
1/1 [==============================] - 0s 982us/step - loss: 1.9062 - binary_accuracy: 0.8750

<tensorflow.python.keras.callbacks.History at 0x7f8b1c3f2410>

Model Interpretability

It is important to understand what is going inside the model. Techniques like GradCam and Saliency Maps can visualize what the Network is learning. trainer module has InterpretModel class which creates GradCam and GradCam++ visualization with almost no additional code.

from chitra.trainer import InterpretModel

trainer = Trainer(ds, create_cnn('mobilenetv2', num_classes=1000, keras_applications=False))
model_interpret = InterpretModel(True, trainer)

image = ds[1][0].numpy().astype('uint8')
image = Image.fromarray(image)
model_interpret(image)
print(IMAGENET_LABELS[285])
Returning the last set size which is: (224, 224)
index: 282
Egyptian Mau

png

🎨 Data Visualization

Image annotation

Bounding Box creation is based on top of imgaug library.

from chitra.image import Chitra
import matplotlib.pyplot as plt

bbox = [70, 25, 190, 210]
label = 'Dog'

image = Chitra(image_path, bboxes=bbox, labels=label)
plt.imshow(image.draw_boxes())

png

See Play with Images for detailed example!

🚀 Model Serving (Framework Agnostic)

Chitra can Create Rest API or Interactive UI app for Any Learning Model - ML, DL, Image Classification, NLP, Tensorflow, PyTorch or SKLearn. It provides chitra.serve.GradioApp for building Interactive UI app for ML/DL models and chitra.serve.API for building Rest API endpoint.

from chitra.serve import create_api
from chitra.trainer import create_cnn

model = create_cnn('mobilenetv2', num_classes=2)
create_api(model, run=True, api_type='image-classification')
API Docs Preview

Preview Model Server

See Example Section for detailed explanation!

🛠 Utility

Limit GPU memory or enable dynamic GPU memory growth for Tensorflow.

from chitra.utility.tf_utils import limit_gpu, gpu_dynamic_mem_growth

# limit the amount of GPU required for your training
limit_gpu(gpu_id=0, memory_limit=1024 * 2)
No GPU:0 found in your system!
gpu_dynamic_mem_growth()
No GPU found on the machine!

🤗 Contribute

Contributions of any kind are welcome. Please check the Contributing Guidelines before contributing.

Code Of Conduct

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

Read full Contributor Covenant Code of Conduct

Acknowledgement

chitra is built with help of awesome libraries like Tensorflow 2.x, imgaug, FastAPI and Gradio.

Comments
  • fix `Unknown` train step

    fix `Unknown` train step

    Changes

    Fixes (Fixed yielding rate in the generator #129)

    Type of change

    • added while loop in generator.
    • added training steps in model training
    Before-

    model training shoes unknown steps in 1st epoch itself.

    Screenshot (45)



    After-

    this problem is solved simultaneously with this issue fixection. Screenshot (47)

    opened by Adk2001tech 6
  • Fixed yielding rate in the generator

    Fixed yielding rate in the generator

    Problem

    There is a limited data yield in the generator which stops data iteration (hence no data will now yield by generator) in 1 complete cycle. Limiting developer to reassess the same data twice in a loop.

    Solution and Alternatives

    Making the generator yields inexhaustible data and simultaneously adding training steps in model training.

    opened by Adk2001tech 6
  • Issue (#129)fixed

    Issue (#129)fixed

    Changes

    Fixes (Fixed yielding rate in the generator #129)

    Type of change

    • added while loop in generator.
    • added training steps in model training
    Before-

    model training shoes unknown steps in 1st epoch itself.

    Screenshot (45)



    After-

    this problem is solved simultaneously with this issue fixection. Screenshot (47)

    opened by Adk2001tech 5
  • Trim down source distribution file size

    Trim down source distribution file size

    At present the gzipped source distribution is about 5 MB (for v0.2.0). This seems a bit high, given the content of the source code. Mostly the *.tar.gz file is bloated with folders like tests, docs, examples that take up most of the space. From a user's perspective, none of these folders are part of the source-code.

    Although opinionated, for instance, documentation lives on the docs site; and making it part of the source code will only make the source code fatten up.

    docs: this folder alone is almost 5 MB in size.

    image

    Changes

    This PR updates the MANIFEST.in file to drop some of these from PyPI source:

    • exclusively non-core-source code files
    • folders like tests, docs, examples take up the most of space
    • config-files that typically start with .<something>.yml, etc.

    Fixes # (issue)

    Type of change

    • [x] Breaking change (fix or feature that would cause existing functionality to not work as expected)

      • [x] This will trim-down the source-package size
    • [ ] This change requires a documentation update

      I am not sure about it; perhaps just a release note about this change would suffice.

    Checklist

    • [x] My code follows the style guidelines of this project
    • [x] I have performed a self-review of my own code
    • [x] I have commented my code, particularly in hard-to-understand areas
    • [x] I have made corresponding changes to the documentation NA
    • [x] My changes generate no new warnings
    opened by sugatoray 4
  • Refactor CI

    Refactor CI

    Changes

    Fixes # (issue)

    Type of change

    • [x] Documentation Update
    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [ ] This change requires a documentation update

    Checklist

    • [x] My code follows the style guidelines of this project
    • [x] I have performed a self-review of my own code
    • [x] I have commented my code, particularly in hard-to-understand areas
    • [x] I have made corresponding changes to the documentation
    • [x] My changes generate no new warnings
    documentation test 
    opened by aniketmaurya 4
  • Integrate AWS Chalice

    Integrate AWS Chalice

    Changes

    Fixes #106

    Type of change

    • [ ] Documentation Update
    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [x] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [x] This change requires a documentation update

    Checklist

    • [x] My code follows the style guidelines of this project
    • [x] I have performed a self-review of my own code
    • [ ] I have commented my code, particularly in hard-to-understand areas
    • [ ] I have made corresponding changes to the documentation
    • [ ] My changes generate no new warnings
    documentation good first issue test serve 
    opened by aniketmaurya 4
  • deepsource auto fixes 🤖

    deepsource auto fixes 🤖

    Changes

    Fixes code quality

    Type of change

    • [ ] Documentation Update
    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [ ] This change requires a documentation update

    Checklist

    • [x] My code follows the style guidelines of this project
    • [x] I have performed a self-review of my own code
    • [x] I have commented my code, particularly in hard-to-understand areas
    • [x] I have made corresponding changes to the documentation
    • [x] My changes generate no new warnings
    opened by aniketmaurya 4
  • quality/reduce code smell ✨

    quality/reduce code smell ✨

    Changes

    Reduce code smell across modules

    Type of change

    • [ ] Documentation Update
    • [ ] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
    • [ ] This change requires a documentation update

    Checklist

    • [x] My code follows the style guidelines of this project
    • [x] I have performed a self-review of my own code
    • [x] I have commented my code, particularly in hard-to-understand areas
    • [x] I have made corresponding changes to the documentation
    • [x] My changes generate no new warnings
    enhancement 
    opened by aniketmaurya 4
  • Ideas to promote the project

    Ideas to promote the project

    These are some ideas I have to promote this project.

    We can share ideas here and grow the community around this project.

    Sharing in the following platforms

    https://news.ycombinator.com/show:

    https://www.reddit.com/

    https://www.producthunt.com/

    https://dev.to

    https://twitter.com/home

    opened by navendu-pottekkat 4
  • Adding Support for Loading Pascal VOC dataset format to tf.data

    Adding Support for Loading Pascal VOC dataset format to tf.data

    Add a new Python module for loading Pascal VOC data format to tf.data

    The function should receive an annotation and image folder path and will return the tf.Dataset object.

    enhancement help wanted good first issue hacktoberfest no-issue-activity 
    opened by aniketmaurya 4
  • Video

    Video

    First off, Apologies for opening an issue for this. I'm currently not active on Social Media but wanted a way to share this.

    Second, Thanks so much for this amazing open source library. This is amazing work! Kudos to @aniketmaurya and the contributors.

    Here's my small video contribution to spread the word - https://youtu.be/0RJfKJEXUDg

    Once again, I'm sorry for raising an issue for this. please close this issue after you read the message. Thanks!

    opened by amrrs 3
Releases(0.2.1.dev0)
  • 0.2.1.dev0(Jan 9, 2022)

    What's Changed

    • Refactor CI by @aniketmaurya in https://github.com/gradsflow/chitra/pull/142
    • fix imgaug dependencies by @aniketmaurya in https://github.com/gradsflow/chitra/pull/143
    • Update docs by @aniketmaurya in https://github.com/gradsflow/chitra/pull/144
    • fix docs by @aniketmaurya in https://github.com/gradsflow/chitra/pull/145
    • Format code with black by @deepsource-autofix in https://github.com/gradsflow/chitra/pull/146
    • add batchify by @aniketmaurya in https://github.com/gradsflow/chitra/pull/147
    • Pip compile docs/requirements.txt by @aniketmaurya in https://github.com/gradsflow/chitra/pull/149
    • [Snyk] Security upgrade mistune from 0.8.4 to 2.0.1 by @aniketmaurya in https://github.com/gradsflow/chitra/pull/150
    • add default extensions by @aniketmaurya in https://github.com/gradsflow/chitra/pull/153
    • fixes by @aniketmaurya in https://github.com/gradsflow/chitra/pull/154
    • revert fixes by @aniketmaurya in https://github.com/gradsflow/chitra/pull/155

    New Contributors

    • @deepsource-autofix made their first contribution in https://github.com/gradsflow/chitra/pull/146

    Full Changelog: https://github.com/gradsflow/chitra/compare/v0.2.0...0.2.1.dev0

    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Nov 26, 2021)

    What's Changed

    • Config file for pyup.io by @pyup-bot in https://github.com/aniketmaurya/chitra/pull/30
    • [ImgBot] Optimize images by @imgbot in https://github.com/aniketmaurya/chitra/pull/28
    • Create CODE_OF_CONDUCT.md by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/31
    • update serving example by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/32
    • docs: fix image url & python style by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/33
    • Bugfix/datagenerator by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/44
    • update sonar badges by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/45
    • Update docs by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/47
    • [ImgBot] Optimize images by @imgbot in https://github.com/aniketmaurya/chitra/pull/48
    • Update docs by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/49
    • [ImgBot] Optimize images by @imgbot in https://github.com/aniketmaurya/chitra/pull/50
    • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/aniketmaurya/chitra/pull/51
    • Update CONTRIBUTING.md by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/53
    • update chitra description by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/56
    • update docs with new Version 📖 by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/57
    • Docs/style by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/59
    • add model serving to documentation by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/60
    • add cache image func by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/61
    • setup testing CI by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/62
    • Fix 'Duplicate Code' issue in chitra\dataloader.py by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/64
    • Add pep8speaks by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/65
    • remove codacy by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/66
    • refactor code & test by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/67
    • fix sonar coverage by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/68
    • replace / with internal keyword by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/70
    • quality/reduce code smell ✨ by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/73
    • increase coverage 🚀 by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/74
    • increase coverage 🚀 by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/75
    • deepsource auto fixes 🤖 by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/79
    • visualize confusion matrix by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/81
    • [ImgBot] Optimize images by @imgbot in https://github.com/aniketmaurya/chitra/pull/82
    • update docs by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/83
    • fix hanging test by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/84
    • Migrate to black by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/86
    • resize bounding box with image.resize() by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/87
    • 📝document image-bbox resize by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/88
    • add dataprocess pipeline and class based model serving by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/89
    • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/aniketmaurya/chitra/pull/90
    • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/aniketmaurya/chitra/pull/91
    • fix requirement install by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/92
    • refactor API & Docs by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/93
    • docs fixes by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/94
    • Integrate Gradio by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/95
    • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/aniketmaurya/chitra/pull/96
    • refactor model server by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/97
    • fixes 0.1.0rc0 by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/98
    • fix doc inconsistency by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/100
    • chitra new banner by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/102
    • 🚀 increase coverage by @sukkritsharmaofficial in https://github.com/aniketmaurya/chitra/pull/101
    • Release Prep by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/104
    • remove heavy imports by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/110
    • Add CLI support by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/111
    • fix requirements.txt for mkdocs by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/112
    • auto dockerization of chitra model server by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/114
    • document auto docker builder by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/115
    • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/aniketmaurya/chitra/pull/109
    • Integrate AWS Chalice by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/116
    • fix pytest fail by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/117
    • remove converter module by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/120
    • lightweight packaging and import by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/121
    • update documentations by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/123
    • 🎉 add arch diagram by @aniketmaurya in https://github.com/aniketmaurya/chitra/pull/127
    • fix Unknown train step by @Adk2001tech in https://github.com/aniketmaurya/chitra/pull/133
    • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/aniketmaurya/chitra/pull/138
    • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/aniketmaurya/chitra/pull/139
    • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/aniketmaurya/chitra/pull/141

    New Contributors

    • @pyup-bot made their first contribution in https://github.com/aniketmaurya/chitra/pull/30
    • @pre-commit-ci made their first contribution in https://github.com/aniketmaurya/chitra/pull/51
    • @sukkritsharmaofficial made their first contribution in https://github.com/aniketmaurya/chitra/pull/101
    • @Adk2001tech made their first contribution in https://github.com/aniketmaurya/chitra/pull/133

    Full Changelog: https://github.com/aniketmaurya/chitra/compare/0.0.22...v0.2.0

    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Aug 7, 2021)

    chitra CLI can build docker image for any kind of Machine Learning or Deep Learning Model.

    chitra builder create [OPTIONS]
    
    Options:
      --path TEXT  [default: ./]
      --port TEXT
      --tag TEXT
      --help       Show this message and exit.
    
    Source code(tar.gz)
    Source code(zip)
  • 0.1.0(Jul 24, 2021)

    🎉 🎉 Chitra now supports Model Serving and Image Data Loading with Bounding Boxes. You can easily create UI app or Rest API for Any Machine Learning or Deep Learning Model (Framework Agnostic).

    Auto Dockerization and Serverless deployment is in roadmap 🚘.

    📚 Get started with the Documentation https://chitra.readthedocs.io/en/latest/

    Source code(tar.gz)
    Source code(zip)
  • 0.1.0b4(Jul 22, 2021)

  • 0.1.0b3(Jul 4, 2021)

  • 0.1.0b1(Jun 24, 2021)

    • cache images to HOME dir (#70)
    • fix sonar coverage #68
    • refactor code & test #67
    • increased test coverage #67
    • Fix 'Duplicate Code' issue in chitra\dataloader.py #64

    pip install chitra==0.1.0b1

    Source code(tar.gz)
    Source code(zip)
  • 0.1.0a1(Jun 23, 2021)

  • 0.1.0a0(Jun 20, 2021)

Owner
Aniket Maurya
Creator of Chitra and GradsFlow ✨ | Maintainer PyTorch Lightning Flash | Open Source 💜
Aniket Maurya
Tensorflow python implementation of "Learning High Fidelity Depths of Dressed Humans by Watching Social Media Dance Videos"

Learning High Fidelity Depths of Dressed Humans by Watching Social Media Dance Videos This repository is the official tensorflow python implementation

Yasamin Jafarian 287 Jan 06, 2023
MARS: Learning Modality-Agnostic Representation for Scalable Cross-media Retrieva

Introduction This is the source code of our TCSVT 2021 paper "MARS: Learning Modality-Agnostic Representation for Scalable Cross-media Retrieval". Ple

7 Aug 24, 2022
This is the first released system towards complex meters` detection and recognition, which is implemented by computer vision techniques.

A three-stage detection and recognition pipeline of complex meters in wild This is the first released system towards detection and recognition of comp

Yan Shu 19 Nov 28, 2022
Implementation of "With a Little Help from my Temporal Context: Multimodal Egocentric Action Recognition, BMVC, 2021" in PyTorch

Multimodal Temporal Context Network (MTCN) This repository implements the model proposed in the paper: Evangelos Kazakos, Jaesung Huh, Arsha Nagrani,

Evangelos Kazakos 13 Nov 24, 2022
ReferFormer - Official Implementation of ReferFormer

The official implementation of the paper: Language as Queries for Referring Vide

Jonas Wu 232 Dec 29, 2022
This repository is an unoffical PyTorch implementation of Medical segmentation in 3D and 2D.

Pytorch Medical Segmentation Read Chinese Introduction:Here! Recent Updates 2021.1.8 The train and test codes are released. 2021.2.6 A bug in dice was

EasyCV-Ellis 618 Dec 27, 2022
code for "Self-supervised edge features for improved Graph Neural Network training",

Self-supervised edge features for improved Graph Neural Network training Data availability: Here is a link to the raw data for the organoids dataset.

Neal Ravindra 23 Dec 02, 2022
Multi-Scale Aligned Distillation for Low-Resolution Detection (CVPR2021)

MSAD Multi-Scale Aligned Distillation for Low-Resolution Detection Lu Qi*, Jason Kuen*, Jiuxiang Gu, Zhe Lin, Yi Wang, Yukang Chen, Yanwei Li, Jiaya J

Jia Research Lab 115 Dec 23, 2022
Reverse engineer your pytorch vision models, in style

🔍 Rover Reverse engineer your CNNs, in style Rover will help you break down your CNN and visualize the features from within the model. No need to wri

Mayukh Deb 32 Sep 24, 2022
This repository is the code of the paper "Sparse Spatial Transformers for Few-Shot Learning".

🌟 Sparse Spatial Transformers for Few-Shot Learning This code implements the Sparse Spatial Transformers for Few-Shot Learning(SSFormers). Our code i

chx_nju 38 Dec 13, 2022
3D-aware GANs based on NeRF (arXiv).

CIPS-3D This repository will contain the code of the paper, CIPS-3D: A 3D-Aware Generator of GANs Based on Conditionally-Independent Pixel Synthesis.

Peterou 563 Dec 31, 2022
Code for ACL2021 long paper: Knowledgeable or Educated Guess? Revisiting Language Models as Knowledge Bases

LANKA This is the source code for paper: Knowledgeable or Educated Guess? Revisiting Language Models as Knowledge Bases (ACL 2021, long paper) Referen

Boxi Cao 30 Oct 24, 2022
H&M Fashion Image similarity search with Weaviate and DocArray

H&M Fashion Image similarity search with Weaviate and DocArray This example shows how to do image similarity search using DocArray and Weaviate as Doc

Laura Ham 18 Aug 11, 2022
Official repository of OFA. Paper: Unifying Architectures, Tasks, and Modalities Through a Simple Sequence-to-Sequence Learning Framework

Paper | Blog OFA is a unified multimodal pretrained model that unifies modalities (i.e., cross-modality, vision, language) and tasks (e.g., image gene

OFA Sys 1.4k Jan 08, 2023
Yas CRNN model training - Yet Another Genshin Impact Scanner

Yas-Train Yet Another Genshin Impact Scanner 又一个原神圣遗物导出器 介绍 该仓库为 Yas 的模型训练程序 相关资料 MobileNetV3 CRNN 使用 假设你会设置基本的pytorch环境。 生成数据集 python main.py gen 训练

wormtql 18 Jan 08, 2023
Ludwig is a toolbox that allows to train and evaluate deep learning models without the need to write code.

Translated in 🇰🇷 Korean/ Ludwig is a toolbox that allows users to train and test deep learning models without the need to write code. It is built on

Ludwig 8.7k Jan 05, 2023
Multi Camera Calibration

Multi Camera Calibration 'modules/camera_calibration/app/camera_calibration.cpp' is for calculating extrinsic parameter of each individual cameras. 'm

7 Dec 01, 2022
A Sign Language detection project using Mediapipe landmark detection and Tensorflow LSTM's

sign-language-detection A Sign Language detection project using Mediapipe landmark detection and Tensorflow LSTM. The project is built for a vocabular

Hashim 4 Feb 06, 2022
This is code to fit per-pixel environment map with spherical Gaussian lobes, using LBFGS optimization

Spherical Gaussian Optimization This is code to fit per-pixel environment map with spherical Gaussian lobes, using LBFGS optimization. This code has b

41 Dec 14, 2022