|View source on GitHub|
A dual encoder model based on a transformer-based encoder.
tfnlp.models.DualEncoder( network: tf.keras.Model, max_seq_length: int = 32, normalize: bool = True, logit_scale: float = 1.0, logit_margin: float = 0.0, output: str = 'logits', **kwargs ) -> None
This is an implementation of the dual encoder network structure based on the transfomer stack, as described in "Language-agnostic BERT Sentence Embedding"
The DualEncoder allows a user to pass in a transformer stack, and build a dual encoder model based on the transformer stack.
||A transformer network which should output an encoding output.|
||The maximum allowed sequence length for transformer.|
||If set to True, normalize the encoding produced by transfomer.|
||The scaling factor of dot products when doing training.|
||The margin between positive and negative when doing training.|
||The output style for this network. Can be either 'logits' or 'predictions'. If set to 'predictions', it will output the embedding producted by transformer network.|
||Returns a dictionary of items to be additionally checkpointed.|
call( inputs, training=None, mask=None )
Calls the model on new inputs.
In this case
call just reapplies
all ops in the graph to the new inputs
(e.g. build a new computational graph from the provided inputs).
||A tensor or list of tensors.|
Boolean or boolean scalar tensor, indicating whether to run
||A mask or list of masks. A mask can be either a tensor or None (no mask).|
|A tensor if there is a single output, or a list of tensors if there are more than one outputs.|