The output block doesn’t affect training, but allows to return extra data, which can come from any layer, to the predictions made by a deployed model.
There can be several Output blocks in a model. If one or more Output blocks are connected to the model graph, you can remove target feature that is used for training from the predicitons of the deployed model.
The Output block is ignored during model training and doesn’t affect performance.
A model is trained to predict a target feature from examples.
However, some deep learning techniques then use the model to not only get predictions about the target feature, but to also get values from intermediate layers of the model.
We want to compress images of handwritten digits into simple
(x,y) coordinates, so that we can compare two images quickly simply by comparing their coordinates.
When querying the model, we will want to get the
(x,y)coordinates of any image submitted, so we connect an Output block to the model graph and set its Name to coordinates.
In this particular case we are not interested in getting the reconstructed image from the model, which would needlessly return too much data. So we can uncheck Use for predictions in the Target block settings.
Since the Output blocks are ignored during model training, the model graph must remain valid if all Output blocks were removed.
This means that an Output block cannot be the only block connected after any of the other blocks. This is not allowed even if a block doesn’t learn anything during training, e.g, the Reshape or the Add blocks.