head
allennlp.models.heads.head
Head¶
class Head(Model)
A Head
is a Model
that takes already encoded input and typically does simple computation
before returning a loss.
There isn't currently any difference in API between a Model
and a Head
, but we have this
separate type as both a signaling mechanism for what to expect when looking at a Head
class,
and so that we can use this as a more informative type annotation when building models that use
Heads
as inputs.
One additional consideration in a Head
is that make_output_human_readable
needs to account
for the case where it gets called without first having forward
be called on the head. This is
because at the point where we call make_output_human_readable
, we don't know which heads were
used in forward
, and trying to save the state is messy. So just make sure that you always
have conditional logic in make_output_human_readable
when you implement a Head
.