def __getitem__(self, idx): # DATA doesn't have to be loaded until here! y = self.labels[idx] if not y == 0 or not y == 1: return None, y else: start = self.times[idx] end = start + 600 if self.medium: # start -= 60*60 # REMOVE start += 60 * 9 # take last minute of the 10 min sample hrs_back = 24 # this means 25 samples as we go as far as exactly 24 hrs ago x_np = np.zeros((hrs_back + 1, 16, 23960)) for i in range(hrs_back + 1): hrs = hrs_back - i min_start = start - hrs * 60 * 60 min_end = min_start + 60 minute = cd.get_data(self.pt, min_start, min_end) x_np[i] = minute[:, :23960] elif self.long: # start -= 60*60*24 start += 60 * 9 days_back = 30 # days to look back x_np = np.zeros((days_back + 1, 16, 23960)) for i in range(days_back + 1): days = days_back - i min_start = start - days * 24 * 60 * 60 min_end = min_start + 60 minute = cd.get_data(self.pt, min_start, min_end) x_np[i] = minute[:, :23960] else: # start -= 60 start -= 600 * ( self.lookBack - 1 ) # Go back 10s of minutes for more training info x_np = cd.get_data(self.pt, start, end) if self.nan_as_noise: x_np = cd.fill_with_noise(self.pt, x_np) else: x_np[np.isnan(x_np)] = 0 # plt.plot(x_np[0]) # plt.show() x = torch.tensor(x_np, dtype=torch.float32) # print('X size', x.size()) return x, torch.tensor(y, dtype=torch.float32)
def __getitem__(self, i): # print('Getting Item') y = self.select_labels[i] if y == 2 or y == -1: y = 0 start = self.select_times[i] end = start + 60 x_np = cd.get_data(self.pt, start, end) if self.nan_as_noise: x_np = cd.fill_with_noise(self.pt, x_np) else: x_np[np.isnan(x_np)] = 0 # plt.plot(x_np[0]) # plt.show() x_np = x_np[:, :23960] x = torch.tensor(x_np, dtype=torch.float32) if self.transform: # print(x.size) x = self.transform(x) return x, torch.tensor(y, dtype=torch.float32)
def __getitem__(self, idx): # DATA doesn't have to be loaded until here! y = self.labels[idx] if y != 1: y = 0 start = self.times[idx] x = torch.tensor(np.zeros((10, 16, 120, 120)), dtype=torch.float) for i in range(10): end = start + 60 tmp = cd.get_data(self.iPt, start, end) tmp_trim = tmp[:, :23960] if self.nan_as_noise: tmp_trim = cd.fill_with_noise(self.pt, tmp_trim) else: tmp_trim[np.isnan(tmp_trim)] = 0 tmp_tensor = torch.tensor(tmp_trim, dtype=torch.float) tmp_trans = self.transform(tmp_tensor) x[i] = tmp_trans start = end return x, torch.tensor(y, dtype=torch.float)
def __getitem__(self, idx): y_np = self.select_labels[idx] if y_np == 2 or y_np == -1: y_np = 0 start = self.select_times[idx] x_np = {} short_start = start - 600 * ( self.lookBack - 1) # Go back 10s of minutes for more training info x_np_short = cd.get_data(self.pt, short_start, start + 600) x_np_short[np.isnan(x_np_short)] = 0 x_np['short'] = x_np_short med_start = start + 60 * 9 # take last minute of the 10 min sample x_np_med = np.zeros((self.hrsBack + 1, 16, 23960)) for i in range(self.hrsBack + 1): hrs = self.hrsBack - i min_start = med_start - hrs * 60 * 60 min_end = min_start + 60 minute = cd.get_data(self.pt, min_start, min_end) x_np_med[i] = minute[:, :23960] x_np_med[np.isnan(x_np_med)] = 0 x_np['medium'] = x_np_med long_start = start + 60 * 9 x_np_long = np.zeros((self.daysBack + 1, 16, 23960)) for i in range(self.daysBack + 1): days = self.daysBack - i min_start = long_start - days * 24 * 60 * 60 min_end = min_start + 60 minute = cd.get_data(self.pt, min_start, min_end) x_np_long[i] = minute[:, :23960] x_np_long[np.isnan(x_np_long)] = 0 x_np['long'] = x_np_long return x_np, y_np