Rate this Page

Struct BCEWithLogitsLossImpl#

Inheritance Relationships#

Base Type#

Struct Documentation#

struct BCEWithLogitsLossImpl : public torch::nn::Cloneable<BCEWithLogitsLossImpl>#

This loss combines a Sigmoid layer and the BCELoss in one single class.

This version is more numerically stable than using a plain Sigmoid followed by a BCELoss as, by combining the operations into one layer, we take advantage of the log-sum-exp trick for numerical stability. See https://pytorch.org/docs/main/nn.html#torch.nn.BCEWithLogitsLoss to learn about the exact behavior of this module.

See the documentation for torch::nn::BCEWithLogitsLossOptions class to learn what constructor arguments are supported for this module.

Example:

BCEWithLogitsLoss
model(BCEWithLogitsLossOptions().reduction(torch::kNone).weight(weight));

Public Functions

explicit BCEWithLogitsLossImpl(BCEWithLogitsLossOptions options_ = {})#
virtual void reset() override#

reset() must perform initialization of all members with reference semantics, most importantly parameters, buffers and submodules.

virtual void pretty_print(std::ostream &stream) const override#

Pretty prints the BCEWithLogitsLoss module into the given stream.

Tensor forward(const Tensor &input, const Tensor &target)#

Public Members

BCEWithLogitsLossOptions options#

The options with which this Module was constructed.

Tensor weight#

A manual rescaling weight given to the loss of each batch element.

Tensor pos_weight#

A weight of positive examples.