# nn.Linear dimensions

Hi, I am quite new to PyTorch and am a bit confused about how to do a certain task with nn.Linear.

I have an input tensor of size `2x28`, and I want the output of the Linear layer to be `28 x s` where `s` can be any scalar value.

How can this be achieved? Right now, from my understanding, the input of a `2x28` tensor with `s=3` results in the output of a `2x3` tensor. How would I make it so that the output is `28x3`?

Here’s my basic code so far:

``````import torch.nn as nn

x = torch.rand(2, 28)
s = 3

print(x.shape)

linear= nn.Linear(28, s)
out = linear(x)

print('out is:', out.shape)

``````

Output:

``````torch.Size([2, 28])
out is: torch.Size([2, 3])
``````

Thank you!

So basically what happens is the first number that is passed to the linear layers is the batch size. The way the linear layer works is it computes the outputs over all batches so the batch number doesn’t change only the input number. If you want something of shape [28, s] you would need to put the 28 first as the batch size.