Step 7: Connecting Deep Lake Datasets to ML Frameworks
Connecting Deep Lake Datasets to machine learning frameworks such as PyTorch and TensorFlow.
How to use Deeplake with PyTorch or TensorFlow in Python

import deeplake
from torchvision import datasets, transforms, models
ds = deeplake.load('hub://activeloop/cifar100-train') # Deep Lake Datasettform = transforms.Compose([
transforms.ToPILImage(), # Must convert to PIL image for subsequent operations to run
transforms.RandomRotation(20), # Image augmentation
transforms.ToTensor(), # Must convert to pytorch tensor for subsequent operations to run
transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5]),
])
#PyTorch Dataloader
dataloader= ds.pytorch(batch_size = 16, num_workers = 2,
transform = {'images': tform, 'labels': None}, shuffle = True)def transform(sample_in):
return {'images': tform(sample_in['images']), 'labels': sample_in['labels']}
#PyTorch Dataloader
dataloader= ds.pytorch(batch_size = 16, num_workers = 2,
transform = transform,
tensors = ['images', 'labels'],
shuffle = True)from torch.utils.data import DataLoader, Dataset
class ClassificationDataset(Dataset):
def __init__(self, ds, transform = None):
self.ds = ds
self.transform = transform
def __len__(self):
return len(self.ds)
def __getitem__(self, idx):
image = self.ds.images[idx].numpy()
label = self.ds.labels[idx].numpy(fetch_chunks = True).astype(np.int32)
if self.transform is not None:
image = self.transform(image)
sample = {"images": image, "labels": label}
return samplecifar100_pytorch = ClassificationDataset(ds_train, transform = tform)
dataloader_pytroch = DataLoader(dataset_pt, batch_size = 16, num_workers = 2, shuffle = True)for data in dataloader:
print(data)
break
# Training Loopfor data in dataloader_pytorch:
print(data)
break
# Training Loopds # Deep Lake Dataset object, to be used for training
ds_tf = ds.tensorflow() # A TensorFlow Dataset