I am trying to build a reinforcement-learning system via OpenAI that is going to perform actions such BUY, SELL, HOLD a stock from the market.
From now I am trying to implement an actual NN that will be used by my agent but I have some problems regarding how to shape the date correctly.

class NeuronalNetwork(nn.Module):
    def __init__(self, input_size, stock_env: StockEnv):
        super(NeuronalNetwork, self).__init__()
        self.stock_env = stock_env
        hidden_dim = 256
        input_size = len(self.stock_env.normalized_dataframe.columns)
        self.hidden_size = 128
        self.num_layers = 1
        output_size = self.stock_env.action_space.n
        self.lstm = nn.LSTM(input_size=input_size, hidden_size=self.hidden_size, num_layers=self.num_layers,
                            batch_first=True)
        self.output_layer = nn.Linear(hidden_dim, output_size)
        self.tanh = nn.Tanh()

    def forward(self, x, hidden=None):
        # N x T x D
        # N - the number of windows sizes
        # T - the window size
        # D - the number of indicators and OHLCV in total
        if hidden is None:
            hidden = (
                torch.zeros(self.num_layers, 1, self.hidden_size).to(device),
                torch.zeros(self.num_layers, 1, self.hidden_size).to(device),
            )
        D = len(self.stock_env.normalized_dataframe.columns)
        T = self.stock_env.window_size
        N = 1
        x = x.view(N, T, D).type(torch.FloatTensor).to(device)
        out, (ht, ct) = self.lstm(x, hidden)
        out = self.tanh(out)
        out = self.output_layer(out)
        return out, hidden

I am having a pandas dataframe with my Open, High, Low, Close, Volume price data which is my input_size and my output_size will be 3 (BUY, HOLD, SELL) because I want to predict the next falling action.
I’m not sure what I am doing wrong but I am getting the following error:
mat1 dim 1 must match mat2 dim 0 when I am trying to run self.output_layer(out)
I’m a newbie here, could anyone of you explain please what I am doing wrong?