Skip to main content

A Python library for machine learning model training and inference

Project description

MemoLib

PyPI version Python Version License: MIT Downloads

A comprehensive Python library for machine learning model training and inference, supporting both classification and object detection tasks with state-of-the-art models.

Features

  • Multiple Model Architectures

    • EfficientNet (B0-B7, EfficientNetV2)
    • YOLO series for object detection
  • Flexible Task Support

    • Image Classification
    • Object Detection
  • Export Capabilities

    • ONNX format for cross-platform deployment
    • OpenVINO format for Intel hardware optimization
  • Training Pipeline

    • Built-in training loops with customizable callbacks
    • Support for custom loss functions (FocalLoss, etc.)
    • Easy model configuration via YAML/JSON
  • Utilities

    • Dataset format conversion tools
    • Data serialization and configuration management
    • Image preprocessing and augmentation

Installation

Install MemoLib using pip:

pip install MemoLib

For development with optional dependencies:

# With OpenVINO support
pip install MemoLib[openvino]

# All optional dependencies
pip install MemoLib[all]

# Development tools
pip install MemoLib[dev]

Quick Start

Classification Example

from MemoLib import MemoModel, eModelTask, eClassifyModel

# Create a classification model (EfficientNet-B0)
model = MemoModel(eModelTask.Classification, eClassifyModel.EfficientNetB0)

# Load pretrained weights and class labels
model.LoadWeight("path/to/weights.pth")
model.LoadLabelName("path/to/labels.txt")

# Make predictions on an image
result = model.Predict("path/to/image.jpg")
print(f"Prediction: {result.label}")
print(f"Confidence: {result.confidence:.2f}")

Object Detection Example

from MemoLib import MemoModel, eModelTask, eDetectModel

# Create a YOLO detection model
model = MemoModel(eModelTask.ObjectDetection, eDetectModel.YOLOv8)

# Load weights
model.LoadWeight("yolov8n.pt")

# Detect objects in image
results = model.Predict("path/to/image.jpg")
for detection in results:
    print(f"Class: {detection.label}, Confidence: {detection.confidence:.2f}")
    print(f"BBox: {detection.bbox}")

Model Export

# Export to ONNX
model.ExportToONNX("model.onnx")

# Export to OpenVINO (requires openvino package)
model.ExportToOpenVINO("model.xml")

Package Structure

MemoLib/
├── Model/              # Core model implementations
│   ├── Data/          # Data loading and preprocessing
│   ├── EfficientNet/  # EfficientNet model variants
│   └── YOLO/          # YOLO detection models
├── DataSerializer/     # Configuration management
├── DatasetFormatConvert/  # Dataset conversion utilities
└── Loss/              # Custom loss functions (FocalLoss, etc.)

Supported Models

Classification

  • EfficientNet-B0 to B7
  • EfficientNetV2-S, M, L

Object Detection

  • YOLOv5
  • YOLOv8
  • YOLOv9
  • YOLO11

Requirements

  • Python >= 3.8
  • PyTorch >= 1.12.0
  • TorchVision >= 0.13.0
  • OpenCV >= 4.5.0
  • Ultralytics >= 8.0.0
  • EfficientNet-PyTorch >= 0.7.0

See pyproject.toml for full dependency list.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Issues

If you encounter any problems or have suggestions, please open an issue.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

NghiaKTHP

Changelog

Version 0.1.5

  • Added GitHub repository links
  • Improved documentation
  • Updated package metadata

Version 0.1.4

  • Initial PyPI release
  • Support for EfficientNet and YOLO models
  • ONNX and OpenVINO export capabilities

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

memolib-0.1.7.7.tar.gz (20.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memolib-0.1.7.7-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

Details for the file memolib-0.1.7.7.tar.gz.

File metadata

  • Download URL: memolib-0.1.7.7.tar.gz
  • Upload date:
  • Size: 20.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for memolib-0.1.7.7.tar.gz
Algorithm Hash digest
SHA256 b4d09bcbd1a38606a22b49cff467565a15eca88be1de272e6f55a1fe1b6246d6
MD5 e2c0772c49fa18b0ea5a7f0681cc045b
BLAKE2b-256 96beded6408deec7d52f5653716ac4b3dca072f5efde6109987b724147aade55

See more details on using hashes here.

Provenance

The following attestation bundles were made for memolib-0.1.7.7.tar.gz:

Publisher: publish-pypi.yml on NghiaKTHP/MemoLib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file memolib-0.1.7.7-py3-none-any.whl.

File metadata

  • Download URL: memolib-0.1.7.7-py3-none-any.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for memolib-0.1.7.7-py3-none-any.whl
Algorithm Hash digest
SHA256 d4650b5c75ba4bdb87c0bdb1ba90dc679b1c1bde0bc3b04f9621ef2d337507c4
MD5 0584414f6240cb9fd6a80ece9cd3445b
BLAKE2b-256 7fdee562ba9c02cb0ebaa56f477dda4e47353688ba1daaff90a43cc364f7fe09

See more details on using hashes here.

Provenance

The following attestation bundles were made for memolib-0.1.7.7-py3-none-any.whl:

Publisher: publish-pypi.yml on NghiaKTHP/MemoLib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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