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.3.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.3-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mmcifar-0.0.3.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.3.tar.gz
Algorithm Hash digest
SHA256 fce03f0912c92e3495cd4c2ded419fa7234ea0136f57c66ea4351cab63291507
MD5 38e05511817898d6217868bd65dcd66d
BLAKE2b-256 444c0d0c5e9f7f162fc8d0f6420dc4b49de3f78fbd59280a351fada06dbda169

See more details on using hashes here.

Provenance

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

Publisher: python-publish.yml on umsynbio/mmcifar

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.3-py3-none-any.whl.

File metadata

  • Download URL: mmcifar-0.0.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fdb4dae9b22523c87a09121491a10ec0057916eb9bb8dec501ad964ac58f153b
MD5 5b511ab8f058af62f8f4e04a26c79ed1
BLAKE2b-256 147cfaec56e51dfefaa81285944b7d8ac02d0cfe0965c6bc6c0f87d6b0fb770b

See more details on using hashes here.

Provenance

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

Publisher: python-publish.yml on umsynbio/mmcifar

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