Ejemplo n.º 1
0
    def show_result(self):

        files = os.listdir(self.output)
        for file in files:
            if ".pth" in file:
                path = os.path.join(self.output, file)
                lstm_model = LSTM(self.input_size, self.output_size,
                                  self.nb_neurons)
                lstm_model.load_state_dict(torch.load(path))
                lstm_model.eval()
                print("model : %s loaded" % path)
                predictions = []

                for (x, _) in self.testing_dataloader:
                    if x.shape[0] == self.batch_size:
                        with torch.no_grad():
                            lstm_model.hidden_cell = (
                                torch.zeros(1, self.batch_size,
                                            lstm_model.nb_neurons),
                                torch.zeros(1, self.batch_size,
                                            lstm_model.nb_neurons))
                            output = lstm_model(x.float())
                            output = self.data.unnormalizeData(
                                output).squeeze()
                            predictions += output.tolist()

                plt.plot(predictions, label="prediction")
                plt.plot(self.real_data_test, label="target")
                plt.title(file)
                plt.legend()
                plt.show()
Ejemplo n.º 2
0
def validate():

    stock = "MC.PA"
    directory = "/Users/baptiste/Desktop/training"

    input_size = 4
    output_size = 4
    nb_neurons = 200

    test_split = 0.1
    time_window = 5

    dataloader = Data(stock)
    df = dataloader.getData()
    real_data = df.to_numpy()
    df_normalized = dataloader.normalizeData(df)
    df_normalized = torch.FloatTensor(df_normalized.to_numpy())

    test_split = int(test_split * df.shape[0])
    real_test_split = real_data[-test_split:-time_window:, 3]
    testing_split = df_normalized[-test_split:, :]

    files = os.listdir(directory)

    for file in files:
        if ".pth" in file:
            path = os.path.join(directory, file)
            lstm_model = LSTM(input_size, output_size, nb_neurons)
            lstm_model.load_state_dict(torch.load(path))
            print("model : %s loaded" % path)

            lstm_model.eval()

            predictions = []

            for i in range(testing_split.shape[0] - time_window):

                x_test = testing_split[i:i + time_window]

                with torch.no_grad():

                    lstm_model.hidden_cell = (torch.zeros(
                        1, 1, lstm_model.nb_neurons),
                                              torch.zeros(
                                                  1, 1, lstm_model.nb_neurons))
                    predictions.append(
                        dataloader.unnormalizeData(
                            lstm_model(x_test).tolist()))
            predictions = np.array(predictions)[:, 3, 0]

            #plt.figure(15,10)
            plt.plot(real_test_split, label="target")
            plt.plot(predictions, label="prediction")
            plt.title(file)
            plt.legend()
            plt.show()