NetDecoder

Listing of Net Decoders »

NetDecoder["name"]

represents a decoder that takes a net representation and decodes it into an expression of a given form.

NetDecoder[{"name",}]

represents a decoder with additional parameters specified.

Details

  • NetDecoder[][array] gives the specified decoded form for array.
  • NetDecoder[][{array1,array2, }] explicitly computes outputs for each of the arrayi.
  • When given a NumericArray as input, the output will be a NumericArray.
  • Possible named decoders include:
  • "Boolean"decode 1 and 0 as True and False
    "BPESubwordTokens"decode probability vectors as a string of subword tokens
    "Characters"decode probability vectors as a string of characters
    "Class"decode probability arrays as class labels
    "CTCBeamSearch"decode sequences of probability vectors trained with a CTCLossLayer
    "Image"decode a rank-3 array as a 2D image
    "Image3D"decode a rank-4 array as a 3D image
    "Tokens"decode probability vectors as a string of tokens
    "Function"decode using a custom function
  • A NetDecoder object can be attached to an output port of a net by specifying "port"->NetDecoder[] when constructing the net. Specifying "port"->"type" will create a decoder of the given type and attach it.
  • When a decoder is attached to the output of a net, net[input] will return the decoded output of the net. The raw output of the net can be obtained by specifying net[input,None].
  • NetDecoder is not involved in training done by NetTrain. However, when NetTrain is allowed to automatically attach a loss layer and a NetDecoder is attached to the output of the net, a NetEncoder of the same type will be created for the "Target" input of the loss layer.
  • NetDecoder[NetEncoder[]] will create a decoder based on the parameters of an existing encoder.

Examples

open allclose all

Basic Examples  (1)

Create a class decoder:

Use it on a probability vector to make a class prediction:

Predict the class for a batch of inputs:

Scope  (1)

Create a pooling layer with an image decoder attached to the output port:

The layer now returns an image when applied to an input array:

Properties & Relations  (2)

Decoders can be attached to a net to automatically decode the output of the net when the net is applied to data:

Apply the net to an input:

Apply the net to a batch of inputs:

Calculate a property of the decoder for an input:

Calculate a property on a batch of inputs:

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

Automatic attachment of an image decoder:

Neat Examples  (1)

Use an encoder and a decoder to produce an interactive display of the output of two successive convolutions:

Introduced in 2016
 (11.0)
 |
Updated in 2018
 (11.3)
2019
 (12.0)