# How to make nn.Linear be y=Wx+b?

When I read the document the description of nn.Linear() is implemented as y = xA^T + b. However, I need y=Wx+b. Is there anyway to get y=Wx+b with nn.Linear()?

`nn.Linear` does exactly `y=Wx+b`.
In the documentation, `A` is a matrix and `A^T` denotes A-transpose.
This is due to how the data is passed through the network.

`nn.Linear` accepts inputs of size `(B, D_in)` and transforms it into output of size `(B, D_out)` by a linear transformation using the weight matrix of size `(D_out, D_in)`.

Thanks for the answer. Actually I already solve this problem. Previously I had a misunderstanding of this implementation. I only treat my input vector as a column vector, so I need a left multiply weight matrix. However, I can use a row vector instead so right multiply a matrix then I can still get a new row vector.

``````m = nn.Linear(20, 30)
input = torch.randn(128, 20)
output = m(input)
``````
1. W: (30,20), x should transpose to(20,128) so Wx = (30,20)*(20,128)=(30,128)
2. xW^T = (128,20)*(20,30)=(128,30)
Wx and xW^T are the same result, but Wx is by column and xW^T is by row? Thanks.