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
HarDNeXt: Official HarDNeXt repository

HarDNeXt-Pytorch HarDNeXt: A Stage Receptive Field and Connectivity Aware Convolution Neural Network HarDNeXt-MSEG for Medical Image Segmentation in 0

5 May 26, 2022
PyTorch implementation of U-TAE and PaPs for satellite image time series panoptic segmentation.

Panoptic Segmentation of Satellite Image Time Series with Convolutional Temporal Attention Networks (ICCV 2021) This repository is the official implem

71 Jan 04, 2023
CTF challenges from redpwnCTF 2021

redpwnCTF 2021 Challenges This repository contains challenges from redpwnCTF 2021 in the rCDS format; challenge information is in the challenge.yaml f

redpwn 27 Dec 07, 2022
Unofficial PyTorch implementation of Fastformer based on paper "Fastformer: Additive Attention Can Be All You Need"."

Fastformer-PyTorch Unofficial PyTorch implementation of Fastformer based on paper Fastformer: Additive Attention Can Be All You Need. Usage : import t

Hong-Jia Chen 126 Dec 06, 2022
Tutorial in Python targeted at Epidemiologists. Will discuss the basics of analysis in Python 3

Python-for-Epidemiologists This repository is an introduction to epidemiology analyses in Python. Additionally, the tutorials for my library zEpid are

Paul Zivich 120 Nov 17, 2022
Cross View SLAM

Cross View SLAM This is the associated code and dataset repository for our paper I. D. Miller et al., "Any Way You Look at It: Semantic Crossview Loca

Ian D. Miller 99 Dec 09, 2022
Synthetic Humans for Action Recognition, IJCV 2021

SURREACT: Synthetic Humans for Action Recognition from Unseen Viewpoints Gül Varol, Ivan Laptev and Cordelia Schmid, Andrew Zisserman, Synthetic Human

Gul Varol 59 Dec 14, 2022
A multi-scale unsupervised learning for deformable image registration

A multi-scale unsupervised learning for deformable image registration Shuwei Shao, Zhongcai Pei, Weihai Chen, Wentao Zhu, Xingming Wu and Baochang Zha

ShuweiShao 2 Apr 13, 2022
Official repository for the paper F, B, Alpha Matting

FBA Matting Official repository for the paper F, B, Alpha Matting. This paper and project is under heavy revision for peer reviewed publication, and s

Marco Forte 404 Jan 05, 2023
Torch code for our CVPR 2018 paper "Residual Dense Network for Image Super-Resolution" (Spotlight)

Residual Dense Network for Image Super-Resolution This repository is for RDN introduced in the following paper Yulun Zhang, Yapeng Tian, Yu Kong, Bine

Yulun Zhang 494 Dec 30, 2022
Code for paper: Group-CAM: Group Score-Weighted Visual Explanations for Deep Convolutional Networks

Group-CAM By Zhang, Qinglong and Rao, Lu and Yang, Yubin [State Key Laboratory for Novel Software Technology at Nanjing University] This repo is the o

zhql 98 Nov 16, 2022
Rank 1st in the public leaderboard of ScanRefer (2021-03-18)

InstanceRefer InstanceRefer: Cooperative Holistic Understanding for Visual Grounding on Point Clouds through Instance Multi-level Contextual Referring

63 Dec 07, 2022
Kaggle DSTL Satellite Imagery Feature Detection

Kaggle DSTL Satellite Imagery Feature Detection

Konstantin Lopuhin 206 Oct 29, 2022
This repository is for the preprint "A generative nonparametric Bayesian model for whole genomes"

BEAR Overview This repository contains code associated with the preprint A generative nonparametric Bayesian model for whole genomes (2021), which pro

Debora Marks Lab 10 Sep 18, 2022
State-to-Distribution (STD) Model

State-to-Distribution (STD) Model In this repository we provide exemplary code on how to construct and evaluate a state-to-distribution (STD) model fo

<a href=[email protected]"> 2 Apr 07, 2022
An official implementation of "Exploiting a Joint Embedding Space for Generalized Zero-Shot Semantic Segmentation" (ICCV 2021) in PyTorch.

Exploiting a Joint Embedding Space for Generalized Zero-Shot Semantic Segmentation This is an official implementation of the paper "Exploiting a Joint

CV Lab @ Yonsei University 35 Oct 26, 2022
[IEEE Transactions on Computational Imaging] Self-Gated Memory Recurrent Network for Efficient Scalable HDR Deghosting

Few-shot Deep HDR Deghosting This repository contains code and pretrained models for our paper: Self-Gated Memory Recurrent Network for Efficient Scal

Susmit Agrawal 4 Dec 29, 2021
Lama-cleaner: Image inpainting tool powered by LaMa

Lama-cleaner: Image inpainting tool powered by LaMa

Qing 5.8k Jan 05, 2023
PyTorch implementation of DARDet: A Dense Anchor-free Rotated Object Detector in Aerial Images

DARDet PyTorch implementation of "DARDet: A Dense Anchor-free Rotated Object Detector in Aerial Images", [pdf]. Highlights: 1. We develop a new dense

41 Oct 23, 2022
Qt-GUI implementation of the YOLOv5 algorithm (ver.6 and ver.5)

YOLOv5-GUI 🎉 YOLOv5算法(ver.6及ver.5)的Qt-GUI实现 🎉 Qt-GUI implementation of the YOLOv5 algorithm (ver.6 and ver.5). 基于YOLOv5的v5版本和v6版本及Javacr大佬的UI逻辑进行编写

EricFang 12 Dec 28, 2022