FCNet Documentation

Overview

The FCNet class is a fully connected neural network designed for classification tasks. It consists of multiple residual layers to enhance feature extraction and can classify input data into multiple categories.

Features

  • Fully Connected Layers: Utilizes linear layers to transform input data.

  • Residual Layers: Includes residual layers to improve feature extraction.

  • Class Embedding: Embeds the extracted features into the desired number of classes.

  • User Embedding: Optionally embeds features into user-specific embeddings.

Configuration Parameters

  • num_inputs: Dimensionality of the input embedding.

  • num_classes: Number of categories for classification.

  • num_filts: Dimensionality of the hidden embeddings.

  • num_users: Number of user-specific embeddings (default is 1).

Methods

forward(x, class_of_interest=None, return_feats=False)

  • Purpose: Processes input features through the network and returns class predictions or intermediate feature embeddings.

  • Parameters:

    • x (torch.FloatTensor): Input location features with shape (batch_size, input_loc_dim).

    • class_of_interest (int, optional): Class ID for specific class evaluation.

    • return_feats (bool, optional): Whether to return only the intermediate feature embeddings.

  • Returns:

    • If return_feats is True, returns the feature embeddings with shape (batch_size, num_filts).

    • If class_of_interest is specified, returns the sigmoid output for the specific class with shape (batch_size).

    • Otherwise, returns the sigmoid class predictions for all classes with shape (batch_size, num_classes).

eval_single_class(x, class_of_interest)

  • Purpose: Evaluates the network output for a specific class.

  • Parameters:

    • x (torch.FloatTensor): Feature embeddings with shape (batch_size, num_filts).

    • class_of_interest (int): Class ID for evaluation.

  • Returns:

    • Sigmoid output for the specified class with shape (batch_size).

User Embedding

The user embedding layer maps the hidden features to user-specific embeddings:

$\mathbf{y} _{\text{user}} = \mathbf{W} _{\text{user}} \mathbf{h}$

where $\mathbf{W}_{\text{user}}$ is the user weight matrix.