Thanks alot for your help, i was able to do the first step but got confused on the other two.
Eventually following up with this URL [1] i rewrote the model, still the model is arbitrarily.
But is this the right way to use 1D convolution for 12 channels (sensors) and 25 data points (time steps) ?
The forward function accept the below shape
torch.Size([1, 25, 12])
The model:
class DQN_Conv1d(nn.Module):
    def __init__(self, input_shape, n_actions):
        super(DQN_Conv1d, self).__init__()
        self.conv1 = nn.Conv1d(input_shape[0], 32, kernel_size=4, stride=1)
        self.conv2 = nn.Conv1d(32, 64, kernel_size=4, stride=1)
        self.conv3 = nn.Conv1d(64, 64, kernel_size=3, stride=1)
        self.conv_drop = nn.Dropout(0.2)
        self.fc1 = nn.Linear(256, 512)
        self.fc2 = nn.Linear(512, n_actions)

    def forward(self, x):
        print(x)
        print(x.shape)
        x = F.relu(F.max_pool1d(self.conv1(x), 1))
        x = F.relu(F.max_pool1d(self.conv2(x), 1))
        x = F.relu(F.max_pool1d(self.conv_drop(self.conv3(x)), 1))
        x = x.view(-1, 256)
        x = F.relu(self.fc1(x))
        x = F.dropout(x, training=self.training)
        x = F.relu(self.fc2(x))
        return F.log_softmax(x)

[1] Inferring shape via flatten operator 6