示例#1
0
    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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
    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