View source on GitHub
|
Masked language model network head for BERT modeling.
tfm.nlp.layers.MobileBertMaskedLM(
embedding_table,
activation=None,
initializer='glorot_uniform',
output='logits',
output_weights_use_proj=False,
**kwargs
)
This layer implements a masked language model based on the provided transformer based encoder. It assumes that the encoder network being passed has a "get_embedding_table()" method. Different from canonical BERT's masked LM layer, when the embedding width is smaller than hidden_size, it adds an extra output weights in shape [vocab_size, (hidden_size - embedding_width)].
Methods
call
call(
sequence_data, masked_positions
)
This is where the layer's logic lives.
The call() method may not create state (except in its first
invocation, wrapping the creation of variables or other resources in
tf.init_scope()). It is recommended to create state, including
tf.Variable instances and nested Layer instances,
in __init__(), or in the build() method that is
called automatically before call() executes for the first time.
| Args | |
|---|---|
inputs
|
Input tensor, or dict/list/tuple of input tensors.
The first positional inputs argument is subject to special rules:
|
*args
|
Additional positional arguments. May contain tensors, although this is not recommended, for the reasons above. |
**kwargs
|
Additional keyword arguments. May contain tensors, although
this is not recommended, for the reasons above.
The following optional keyword arguments are reserved:
training: Boolean scalar tensor of Python boolean indicating
whether the call is meant for training or inference.mask: Boolean input mask. If the layer's call() method takes a
mask argument, its default value will be set to the mask
generated for inputs by the previous layer (if input did come
from a layer that generated a corresponding mask, i.e. if it came
from a TF-Keras layer with masking support).
|
| Returns | |
|---|---|
| A tensor or list/tuple of tensors. |
View source on GitHub