Skip to content

FusedProjSoftmax

FusedProjSoftmax is a PyTorch module that applies a linear projection followed by a softmax operation. This can be used for a wide array of applications in various domains from machine learning and natural language processing to image recognition and beyond.

Overview

The primary goal of the FusedProjSoftmax module is to provide an efficient and easy-to-use implementation for linear projection and softmax operation which are common components in many neural network architectures.

Class Definition

Parameters

The FusedProjSoftmax class constructor takes the following parameters:

Parameter Description Type Default Value
dim The input dimension int
dim_out The output dimension int
dim_axis The axis along which the softmax operation is applied int -1
*args Variable length arguments
**kwargs Arbitrary keyword arguments

Attributes

The FusedProjSoftmax module has two attributes:

  • proj: A linear projection layer nn.Linear used for projecting the input to the output dimension.
  • softmax: A softmax operation layer nn.Softmax used to apply the softmax operation along the specified axis.

Usage Examples

Example 1: Initializing and using the FusedProjSoftmax module

import torch
from torch import nn

from zeta.nn import FusedProjSoftmax

# Create an input tensor x
x = torch.rand(1, 2, 3)

# Initialize the FusedProjSoftmax module with input and output dimensions
model = FusedProjSoftmax(3, 4)

# Apply the FusedProjSoftmax operation to the input tensor x
out = model(x)

# Print the shape of the output tensor
print(out.shape)

Example 2: Creating a custom model with the FusedProjSoftmax module

import torch
from torch import nn

from zeta.nn import FusedProjSoftmax


# Define a custom neural network model
class CustomModel(nn.Module):
    def __init__(self):
        super().__init__()
        self.projsoftmax = FusedProjSoftmax(5, 10)

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        # Apply the FusedProjSoftmax operation to the input tensor
        return self.projsoftmax(x)

Example 3: Specifying optional arguments when initializing FusedProjSoftmax

import torch
from torch import nn

from zeta.nn import FusedProjSoftmax

# Create an input tensor x
x = torch.rand(1, 2, 3)

# Initialize the FusedProjSoftmax module with input and output dimensions
# Specify the axis along which the softmax operation is applied
model = FusedProjSoftmax(3, 4, dim_axis=1)

# Apply the FusedProjSoftmax operation to the input tensor x
out = model(x)

# Print the shape of the output tensor
print(out.shape)

Additional Information and Tips

  • When using the FusedProjSoftmax module, it is important to ensure that the dimensions and axes are correctly specified to achieve the desired output.

References and Resources

For further information or in-depth exploration of the softmax operation and relevant documentation, refer to the PyTorch documentation and relevant research papers or articles.

With this detailed and comprehensive documentation, users can effectively understand and utilize the functionality of the FusedProjSoftmax module in their PyTorch projects. This documentation provides a clear overview, description of each feature, usage examples, and additional usage tips, ensuring that users have a complete understanding of the module.