Listing of Net Decoders »


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


represents a decoder with additional parameters specified.


  • 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
    "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.


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:

Wolfram Research (2016), NetDecoder, Wolfram Language function, (updated 2019).


Wolfram Research (2016), NetDecoder, Wolfram Language function, (updated 2019).


@misc{reference.wolfram_2020_netdecoder, author="Wolfram Research", title="{NetDecoder}", year="2019", howpublished="\url{}", note=[Accessed: 18-January-2021 ]}


@online{reference.wolfram_2020_netdecoder, organization={Wolfram Research}, title={NetDecoder}, year={2019}, url={}, note=[Accessed: 18-January-2021 ]}


Wolfram Language. 2016. "NetDecoder." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019.


Wolfram Language. (2016). NetDecoder. Wolfram Language & System Documentation Center. Retrieved from