Guest User

IDSDataset

a guest
Mar 17th, 2021
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.25 KB | None | 0 0
  1. import torchvision
  2. import numpy as np
  3. from torchvision import transforms
  4. import torch
  5. from torch.utils.data import Dataset
  6. from torch.utils.data import Subset
  7. from sklearn.model_selection import train_test_split
  8. import avalanche
  9. from avalanche.benchmarks.generators import nc_scenario, ni_scenario
  10.  
  11. class IDSDataset(Dataset):
  12.  
  13.     def __init__(self,transform=None):
  14.         self.path_ds = '../data/dataset.npy'
  15.         self.path_lab = '../data/labels.npy'
  16.         self.ds = np.load(self.path_ds)
  17.  
  18.         self.label = np.load(self.path_lab)
  19.         self.n_samples= len(self.ds)
  20.         self.transform = transform
  21.  
  22.     def __len__(self):
  23.         return self.n_samples
  24.  
  25.     def __getitem__(self,index):
  26.         sample = self.ds[index],int(self.label[index,0])
  27.         if self.transform:
  28.             sample=self.transform(sample)
  29.         return sample
  30.  
  31. class ToTensor:
  32.     # Convert ndarrays to Tensors
  33.     def __call__(self, sample):
  34.         inputs, target = sample
  35.         all_inputs_normalised = (inputs - inputs.min(axis=0))/(inputs.max(axis=0)-inputs.min(axis=0)+1e-5)
  36.         # converts inputs to tensors
  37.         return torch.Tensor(all_inputs_normalised), target
  38.  
  39. def train_val_dataset(dataset, val_split=0.33):
  40.     train_idx, val_idx = train_test_split(list(range(len(dataset))), test_size=val_split,random_state=42)
  41.     return Subset(dataset,train_idx),Subset(dataset,val_idx)
  42.  
  43.  
  44. def IDS():
  45.     whole = IDSDataset(transform=ToTensor())
  46.     train_dataset, val_dataset = train_val_dataset(whole)
  47.     return train_dataset, val_dataset
  48.  
  49. train_dataset,val_dataset = IDS()
  50.  
  51. print(f'''Type check here: Type of train_dataset: {type(train_dataset)}",
  52. Type of inputs: {type(train_dataset[0][0])}, Type or Targets: {type(train_dataset[0][1])} \n One sample of TrainingData: \n {train_dataset[0]}''')
  53.  
  54. scenario = nc_scenario(
  55.     train_dataset, val_dataset, n_experiences=15, shuffle=True, seed=1234,
  56.     task_labels=False
  57. )
  58. train_stream = scenario.train_stream
  59.  
  60. for experience in train_stream:
  61.     t = experience.task_label
  62.     exp_id = experience.current_experience
  63.     training_dataset = experience.dataset
  64.     print('Task {} batch {} -> train'.format(t, exp_id))
  65.     print('This batch contains', len(training_dataset), 'patterns')
  66.  
  67.  
  68.  
Advertisement
Add Comment
Please, Sign In to add comment