lmc-code / src /datasets.py
khanhvinh9's picture
Upload folder using huggingface_hub
a20151e verified
Raw
History Blame Contribute Delete
2.31 kB
import numpy as np
import tensorflow_datasets as tfds
from torchvision import datasets, transforms
import torch, os
import pickle
def load_cifar10(data_dir=None):
"""Return the training and test datasets, as jnp.array's."""
train_ds_images_u8, train_ds_labels = tfds.as_numpy(
tfds.load("cifar10", split="train", batch_size=-1, as_supervised=True, data_dir=data_dir))
test_ds_images_u8, test_ds_labels = tfds.as_numpy(
tfds.load("cifar10", split="test", batch_size=-1, as_supervised=True, data_dir=data_dir))
train_ds = {"images_u8": train_ds_images_u8, "labels": train_ds_labels}
test_ds = {"images_u8": test_ds_images_u8, "labels": test_ds_labels}
return train_ds, test_ds
import tensorflow_datasets as tfds
def load_cifar100(data_dir=None):
# Define paths for saved dataset
train_pickle = os.path.join(data_dir, "cifar100_train.pkl")
test_pickle = os.path.join(data_dir, "cifar100_test.pkl")
# Check if dataset already exists
if os.path.exists(train_pickle) and os.path.exists(test_pickle):
print(f"Loading dataset from {data_dir}")
with open(train_pickle, "rb") as f:
train_ds = pickle.load(f)
with open(test_pickle, "rb") as f:
test_ds = pickle.load(f)
return train_ds, test_ds
os.makedirs(data_dir, exist_ok=True)
# Load CIFAR-100 dataset with optional data_dir
train_ds_images_u8, train_ds_labels = tfds.as_numpy(
tfds.load("cifar100", split="train", batch_size=-1, as_supervised=True, data_dir=data_dir))
test_ds_images_u8, test_ds_labels = tfds.as_numpy(
tfds.load("cifar100", split="test", batch_size=-1, as_supervised=True, data_dir=data_dir))
# Organize datasets into dictionaries
train_ds = {"images_u8": train_ds_images_u8, "labels": train_ds_labels}
test_ds = {"images_u8": test_ds_images_u8, "labels": test_ds_labels}
# Save datasets to pickle files
print(f"Saving dataset to {data_dir}")
try:
with open(train_pickle, "wb") as f:
pickle.dump(train_ds, f)
with open(test_pickle, "wb") as f:
pickle.dump(test_ds, f)
print(f"Successfully saved datasets to {data_dir}")
except Exception as e:
print(f"Error saving datasets: {e}")
raise
return train_ds, test_ds