Skip to main content

A dataset wrapper that performs CIFAR-10 multimodal loading

Project description

Multimodal CIFAR Dataset

Quick Start

from cifar_rgb.datasets import create_cifar_rgb_loaders
from cifar_rgb.transforms import grayscale

train_loader, test_loader = create_cifar_rgb_loaders(
    batch_size=32,
    transform=grayscale,
    train_ratio=0.8,
    random_seed=42
)

for data, target in train_loader:
    pass  # data shape: (32, 3, 32, 32), target shape: (32,)

Visualization

import matplotlib.pyplot as plt
from cifar_rgb.datasets import create_cifar_rgb_loaders
from cifar_rgb.transforms import grayscale

train_loader, _ = create_cifar_rgb_loaders(
    batch_size=4,
    transform=grayscale,
    train_ratio=0.8,
    random_seed=42
)

img_rgb, label = next(iter(train_loader))[0][0], next(iter(train_loader))[1][0].item()

plt.figure(figsize=(10, 3))
plt.subplot(1, 4, 1)
plt.imshow(img_rgb.permute(1, 2, 0).numpy())
plt.title(f"RGB (Label: {label})")
plt.axis('off')

for i, (channel, title) in enumerate(zip(img_rgb, ["R/Mode 1", "G/Mode 2", "B/Mode 3"]), start=2):
    plt.subplot(1, 4, i)
    plt.imshow(channel.numpy(), cmap='gray')
    plt.title(title)
    plt.axis('off')

plt.tight_layout()
plt.show()

API Reference

RGBDataset

Wraps three grayscale datasets as RGB.

from cifar_rgb.datasets import RGBDataset

dataset = RGBDataset(
    mode1_dataset,
    mode2_dataset,
    mode3_dataset,
    train=True,
    train_ratio=0.8,
    random_seed=42
)

CIFARRGBData

High-level manager for CIFAR RGB datasets.

from cifar_rgb.datasets import CIFARRGBData

manager = CIFARRGBData(
    data_root='./data',
    transform=grayscale,
    train_ratio=0.8,
    random_seed=42
)

train_dataset, test_dataset = manager.get_datasets()
train_loader, test_loader = manager.get_loaders(
    batch_size=32,
    shuffle_train=True,
    shuffle_test=False,
    num_workers=0
)

Helper Functions

from cifar_rgb.datasets import create_cifar_rgb_datasets, create_cifar_rgb_loaders

# Datasets
train_dataset, test_dataset = create_cifar_rgb_datasets(
    data_root='./data',
    transform=grayscale,
    train_ratio=0.8,
    random_seed=42,
    download=True
)

# Loaders
train_loader, test_loader = create_cifar_rgb_loaders(
    batch_size=32,
    data_root='./data',
    transform=grayscale,
    train_ratio=0.8,
    random_seed=42,
    shuffle_train=True,
    shuffle_test=False,
    num_workers=0,
    download=True
)

Transforms

from cifar_rgb.transforms import grayscale
# grayscale = Compose([Grayscale(num_output_channels=1), ToTensor()])

Data Format

  • Input: Three grayscale datasets
  • Output: RGB images with:
    • Red = mode1
    • Green = mode2
    • Blue = mode3
  • Shape: (3, 32, 32)
  • Labels: Taken from original datasets

Dependencies

  • PyTorch
  • torchvision
  • matplotlib
  • pytest (for tests)

Testing

pytest tests/

Examples

See examples/visualize.py for RGB channel visualization.

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

mmcifar-0.0.1.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

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

mmcifar-0.0.1-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file mmcifar-0.0.1.tar.gz.

File metadata

  • Download URL: mmcifar-0.0.1.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mmcifar-0.0.1.tar.gz
Algorithm Hash digest
SHA256 002d1e2789b7e0ea805f0c4ee138d8a6f071680dd01e93499cd14369e5310f0e
MD5 2cfa6af0ac7050a7bfe95e52137fe873
BLAKE2b-256 d99e837c7d0231c1f328d346913291b2e58e6ae74737cec4180953e1d26ab874

See more details on using hashes here.

Provenance

The following attestation bundles were made for mmcifar-0.0.1.tar.gz:

Publisher: python-publish.yml on umsynbio/MM_CIFAR

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

File details

Details for the file mmcifar-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: mmcifar-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for mmcifar-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 31b9db6bf78ff6f6cb9ab51c452f62134dfcab6659daffafb03a64eef46e11ae
MD5 53ed952d67566d4f32df14ff9dd686be
BLAKE2b-256 cba0b149187d4ee59cb23a2f318d02e64ab30075b6db209bcf841f8634e017d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mmcifar-0.0.1-py3-none-any.whl:

Publisher: python-publish.yml on umsynbio/MM_CIFAR

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