Mila 0.13.48
Deep Neural Network Library
Loading...
Searching...
No Matches
Mila::Dnn::CrossEntropyConfig Class Referenceexport

Configuration for fused SoftmaxCrossEntropy loss. More...

Inheritance diagram for Mila::Dnn::CrossEntropyConfig:
Collaboration diagram for Mila::Dnn::CrossEntropyConfig:

Public Member Functions

 CrossEntropyConfig ()=default
 Default constructor.
 CrossEntropyConfig (int64_t vocab_size)
 Constructor with required vocabulary size parameter.
void fromMetadata (const SerializationMetadata &meta) override
 Populate configuration from provided metadata.
int64_t getVocabSize () const
 Get the vocabulary size.
SerializationMetadata toMetadata () const override
 Convert configuration into SerializationMetadata.
std::string toString () const override
 String representation of the configuration.
void validate () const override
 Validate configuration parameters.
template<typename Self>
decltype(auto) withVocabSize (this Self &&self, int64_t vocab_size)
 C++23-style fluent setter for vocabulary size.
Public Member Functions inherited from Mila::Dnn::ComponentConfig
virtual ~ComponentConfig ()=default
 Virtual destructor for polymorphic base.

Private Attributes

int64_t vocab_size_ = 0
 Number of classes in the vocabulary.

Detailed Description

Configuration for fused SoftmaxCrossEntropy loss.

Provides a lightweight value object containing the vocabulary size required by the fused softmax + cross-entropy kernels.

Constructor & Destructor Documentation

◆ CrossEntropyConfig() [1/2]

Mila::Dnn::CrossEntropyConfig::CrossEntropyConfig ( )
default

Default constructor.

Leaves vocab_size_ at 0; callers should set it before using the configuration. validate() will reject a zero vocab size.

◆ CrossEntropyConfig() [2/2]

Mila::Dnn::CrossEntropyConfig::CrossEntropyConfig ( int64_t vocab_size)
inlineexplicit

Constructor with required vocabulary size parameter.

Parameters
vocab_sizeThe size of the vocabulary (number of classes). Must be > 0. Kernels validate: 0 <= target < vocab_size.

Member Function Documentation

◆ fromMetadata()

void Mila::Dnn::CrossEntropyConfig::fromMetadata ( const SerializationMetadata & meta)
inlineoverridevirtual

Populate configuration from provided metadata.

Missing keys are ignored, leaving defaults intact. Type-safe try-get helpers are used to avoid throwing on absent fields.

Parameters
metaMetadata to read configuration values from.

Implements Mila::Dnn::ComponentConfig.

Here is the call graph for this function:

◆ getVocabSize()

int64_t Mila::Dnn::CrossEntropyConfig::getVocabSize ( ) const
inline

Get the vocabulary size.

Used by kernels to validate target indices.

Returns
int64_t The vocabulary size

◆ toMetadata()

SerializationMetadata Mila::Dnn::CrossEntropyConfig::toMetadata ( ) const
inlineoverridevirtual

Convert configuration into SerializationMetadata.

Produces keys:

  • "precision" : integer (underlying value of ComputePrecision::Policy)
  • "vocab_size" : integer
Returns
SerializationMetadata Metadata representing this configuration.

Implements Mila::Dnn::ComponentConfig.

Here is the call graph for this function:

◆ toString()

std::string Mila::Dnn::CrossEntropyConfig::toString ( ) const
inlineoverridevirtual

String representation of the configuration.

Returns
std::string Human-readable description of the configuration.

Implements Mila::Dnn::ComponentConfig.

◆ validate()

void Mila::Dnn::CrossEntropyConfig::validate ( ) const
inlineoverridevirtual

Validate configuration parameters.

Checks that vocabulary size is positive.

Exceptions
std::invalid_argumentIf vocab_size <= 0

Implements Mila::Dnn::ComponentConfig.

◆ withVocabSize()

template<typename Self>
decltype(auto) Mila::Dnn::CrossEntropyConfig::withVocabSize ( this Self && self,
int64_t vocab_size )
inline

C++23-style fluent setter for vocabulary size.

Parameters
vocab_sizeVocabulary size (number of classes)
Returns
Self&& for method chaining

Member Data Documentation

◆ vocab_size_

int64_t Mila::Dnn::CrossEntropyConfig::vocab_size_ = 0
private

Number of classes in the vocabulary.


The documentation for this class was generated from the following file: