If you use nn.Conv2d you would have to stick to your shapes, i.e. [batch_size, c, h, w].
In your example the conv layer would convolve the embedding tensor using its kernel size in sentence_len and embedding_dim dimension. I’m not sure if that’s the most useful method regarding your use case.
Maybe a nn.Conv1d layer would fit a bit better, as it’s expecting the input to be in shape [batch_size, channel, length]. If you permute your dimensions to get [batch_size, embedding_dim, sentence_len], each kernel will use all channels in the default settings and its kernel along the sentence_len dim.