Skip to main content

Models and model utilities for common ML tasks

Project description

xt-models

Description

This repo contains common models and utilities for working with ML tasks, developed by Xtract AI.

More to come.

Installation

From PyPi:

pip install xt-models

From source:

git clone https://github.com/XtractTech/xt-models.git
pip install ./xt-models

Usage

Grabbing a segmentation model

from xt_models.models import ModelBuilder, SegmentationModule
from torch import nn

deep_sup_scale = 0.4
fc_dim = 2048
n_class = 2
net_encoder = ModelBuilder.build_encoder(
    arch="resnet50dilated",
    fc_dim=fc_dim,
    weights="/nasty/scratch/common/smart_objects/model/ade20k/encoder_epoch_20.pth"
)
net_decoder = ModelBuilder.build_decoder(
    arch="ppm_deepsup",
    fc_dim=fc_dim,
    num_class=150,
    weights="/nasty/scratch/common/smart_objects/model/ade20k/decoder_epoch_20.pth"
)
in_channels = net_decoder.conv_last[-1].in_channels
net_decoder.conv_last[-1] = nn.Conv2d(in_channels, n_class, kernel_size=(1, 1), stride=(1, 1))
net_decoder.conv_last_deepsup = nn.Conv2d(in_channels, n_class, 1, 1, 0)


model = SegmentationModule(net_encoder, net_decoder, deep_sup_scale)

Grabbing a detection model

from xt_models.models import Model
import torch

# Load a fine-tuned model for inference
model_name = "yolov5x"
model = Model(model_name,nc=15)
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
weights = "/nasty/scratch/common/smart_objects/model/veh_detection/yolov5_ft/best_state_dict.pt"
ckpt = torch.load(weights, map_location=device)
model.load_state_dict(ckpt['model_state_dict'])

# Load pre-trained COCO model for finetuning/inference
model_name = "yolov5x"
model = Model(model_name,nc=80)
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
weights = "/nasty/scratch/common/smart_objects/model/veh_detection/yolov5_pretrain/yolov5x_state_dict.pt"
ckpt = torch.load(weights, map_location=device)
model.load_state_dict(ckpt['model_state_dict'])
# Fine-tuning number of classes
n_class = 15
model.nc = n_class

Implementing a new model

If you are having to always copy and paste the same model code for different projects, simply add the model code to the models directory, and import it in the models/__init__.py file.

Data Sources

[descriptions and links to data]

Dependencies/Licensing

[list of dependencies and their licenses, including data]

References

[list of references]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xt-models-0.4.0.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

xt_models-0.4.0-py3-none-any.whl (25.8 kB view details)

Uploaded Python 3

File details

Details for the file xt-models-0.4.0.tar.gz.

File metadata

  • Download URL: xt-models-0.4.0.tar.gz
  • Upload date:
  • Size: 21.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1.post20200622 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.7

File hashes

Hashes for xt-models-0.4.0.tar.gz
Algorithm Hash digest
SHA256 f527ce1ac093dbab65280dfe1aa25b421787b98f756d0d7d89f32ef465b4871d
MD5 81b894020d8014acd0d7e48cb967d085
BLAKE2b-256 4775120132c8dce573e2eb7f221cd8a45dfed4905db544fb12947b105daca57f

See more details on using hashes here.

File details

Details for the file xt_models-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: xt_models-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 25.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1.post20200622 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.7.7

File hashes

Hashes for xt_models-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 74319ba9ad20759720f7b0f2698a73953c5b8c214cdb38d9cdbad044b4190f29
MD5 3895a40668d591e4d1db394bbd24eb0c
BLAKE2b-256 7effbb56fe67b9fbf3bc8d548d774ff9af615552c7ff51e9ba05155dc79934dd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page