| |
|
|
| class RRF_Dataset(Dataset): |
| def __init__(self, strain, weights, seq_len=160): |
| self.seq_len = seq_len |
| self.strain = strain |
| self.weights = weights |
| print(f"Debug: RRF_Dataset __init__ - len(strain): {len(strain)}, seq_len: {self.seq_len}") |
| |
| if len(strain) >= seq_len: |
| self.n = len(strain) // seq_len |
| else: |
| self.n = 0 |
| print(f"Debug: RRF_Dataset __init__ - Calculated self.n: {self.n}") |
| |
| if self.n == 0: |
| raise ValueError(f"Strain data length ({len(strain)}) is less than sequence length ({seq_len}). Cannot create any samples.") |
|
|
|
|
| def __len__(self): |
| return self.n |
|
|
| def __getitem__(self, idx): |
| start = idx * self.seq_len |
| |
| x = self.strain[start:start+self.seq_len] |
|
|
| |
| w = np.mean(self.weights) |
|
|
| |
| |
| y = np.mean(x) * w |
|
|
| |
| |
| return torch.tensor(x).float().unsqueeze(0), torch.tensor(y).float() |