"Class" (Net Encoder)

NetEncoder[{"Class",classes}]

represents an encoder that converts a class label in the list classes to an integer code.

NetEncoder[{"Class",classes,form}]

represents an encoder that converts class labels to the output type form.

Details

  • NetEncoder[][input] applies the encoder to an input to produce an output.
  • NetEncoder[][{input1,input2,}] applies the encoder to a list of inputs to produce a list of outputs.
  • The input to the encoder inputi must be an element in the list classes.
  • The following parameters are supported:
  • "Dimensions"{}input dimensions
    "Multilabel"Falsewhether classes are not exclusive
  • When "Multilabel"False and form is "Index" (the default), the output of the encoder is the integer that is the position of input in classes.
  • When "Multilabel"False and form is "IndicatorVector", the output of the encoder is an n-dimensional unit vector in the p^(th) direction, where p is the position of input in classes, and n is the length of classes.
  • When "Multilabel"True and form is "IndicatorVector", the output of the encoder is an n-dimensional unit vector with ones at the position of input classes and zeros elsewhere.
  • An encoder can be attached to an input port of a net by specifying "port"->TemplateBox[{NetEncoder, paclet:ref/NetEncoder}, RefLink, BaseStyle -> {InlineFormula}][] when constructing the net.

Examples

open allclose all

Basic Examples  (1)

Create a class encoder with two classes:

Apply it to a batch of inputs:

Scope  (1)

The default output form is to encode classes as integers:

Specifying the "IndicatorVector" form will encode classes as "one-hot" vectors:

Parameters  (3)

"Dimensions"  (2)

Create an encoder that takes a 3x3 matrix of classes and returns a matrix of indices:

Apply it to a single input:

Create an encoder that takes a 2x2 matrix of classes and returns unit vectors:

Apply it to a single input:

"Multilabel"  (1)

Create a multilabel encoder:

Apply it to a single input with two classes:

Apply it to a batch of inputs:

Properties & Relations  (1)

NetTrain will automatically try attach an encoder when a net is not fully specified. Automatic attachment of a class encoder: