--- myst: html_meta: description: Linear layers in PyTorch C++ — Linear, Bilinear, and Flatten modules. keywords: PyTorch, C++, Linear, Bilinear, Flatten, fully connected, dense layer --- # Linear Layers Linear layers apply affine transformations to input data: `y = xW^T + b`. They are the building blocks of fully-connected networks and are used for feature transformation, classification heads, and projection layers. - **Linear**: Standard fully-connected layer - **Bilinear**: Bilinear transformation of two inputs - **Identity**: Pass-through layer (useful for skip connections) - **Flatten/Unflatten**: Reshape tensors between convolutional and linear layers ## Linear ```{doxygenclass} torch::nn::Linear :members: :undoc-members: ``` ```{doxygenclass} torch::nn::LinearImpl :members: :undoc-members: ``` **Example:** ```cpp auto linear = torch::nn::Linear(torch::nn::LinearOptions(784, 256).bias(true)); auto output = linear->forward(input); // input: [N, 784] ``` ## Bilinear ```{doxygenclass} torch::nn::Bilinear :members: :undoc-members: ``` ```{doxygenclass} torch::nn::BilinearImpl :members: :undoc-members: ``` ## Identity ```{doxygenclass} torch::nn::Identity :members: :undoc-members: ``` ```{doxygenclass} torch::nn::IdentityImpl :members: :undoc-members: ``` ## Flatten ```{doxygenclass} torch::nn::Flatten :members: :undoc-members: ``` ```{doxygenclass} torch::nn::FlattenImpl :members: :undoc-members: ``` ## Unflatten ```{doxygenclass} torch::nn::Unflatten :members: :undoc-members: ``` ```{doxygenclass} torch::nn::UnflattenImpl :members: :undoc-members: ```