merlin.models.tf.InputBlockV2#

merlin.models.tf.InputBlockV2(schema: typing.Optional[merlin.schema.schema.Schema] = None, categorical: typing.Union[merlin.schema.tags.Tags, keras.engine.base_layer.Layer] = Tags.CATEGORICAL, continuous: typing.Union[merlin.schema.tags.Tags, keras.engine.base_layer.Layer] = Tags.CONTINUOUS, pretrained_embeddings: typing.Union[merlin.schema.tags.Tags, keras.engine.base_layer.Layer] = Tags.EMBEDDING, pre: typing.Optional[typing.Union[merlin.models.tf.core.base.Block, str, typing.Sequence[str]]] = None, post: typing.Optional[typing.Union[merlin.models.tf.core.base.Block, str, typing.Sequence[str]]] = None, aggregation: typing.Optional[typing.Union[str, merlin.models.tf.core.tabular.TabularAggregation]] = 'concat', tag_to_block={<Tags.CONTINUOUS: 'continuous'>: <class 'merlin.models.tf.inputs.continuous.Continuous'>, <Tags.CATEGORICAL: 'categorical'>: <function Embeddings>, <Tags.EMBEDDING: 'embedding'>: <function PretrainedEmbeddings>}, **branches) merlin.models.tf.core.combinators.ParallelBlock[source]#

The entry block of the model to process input features from a schema.

This is a new version of InputBlock, which is more flexible for accepting the external definition of embeddings block. After 22.10 this will become the default.

Simple Usage::

inputs = InputBlockV2(schema)

Custom Embeddings::
inputs = InputBlockV2(

schema, categorical=Embeddings(schema, dim=32)

)

Sparse outputs for one-hot::
inputs = InputBlockV2(

schema, categorical=CategoryEncoding(schema, sparse=True), post=ToSparse()

)

Add continuous projection::
inputs = InputBlockV2(

schema, continuous=ContinuousProjection(continuous_schema, MLPBlock([32])),

)

Merge 2D and 3D (for session-based)::
inputs = InputBlockV2(

schema, post=BroadcastToSequence(context_schema, sequence_schema)

)

Parameters
  • schema (Schema) – Schema of the input data. This Schema object will be automatically generated using [NVTabular](https://nvidia-merlin.github.io/NVTabular/stable/Introduction.html). Next to this, it’s also possible to construct it manually.

  • categorical (Union[Tags, Layer], defaults to Tags.CATEGORICAL) – A block or column-selector to use for categorical-features. If a column-selector is provided (either a schema or tags), the selector will be passed to Embeddings() to infer the embedding tables from the column-selector.

  • continuous (Union[Tags, Layer], defaults to Tags.CONTINUOUS) – A block to use for continuous-features. If a column-selector is provided (either a schema or tags), the selector will be passed to Continuous() to infer the features from the column-selector.

  • pretrained_embeddings (Union[Tags, Layer], defaults to Tags.EMBEDDING) – A block to use for pre-trained embeddings If a column-selector is provided (either a schema or tags), the selector will be passed to PretrainedEmbeddings() to infer the features from the column-selector.

  • pre (Optional[BlockType], optional) – Transformation block to apply before the embeddings lookup, by default None

  • post (Optional[BlockType], optional) – Transformation block to apply after the embeddings lookup, by default None

  • aggregation (Optional[TabularAggregationType], optional) – Transformation block to apply for aggregating the inputs, by default “concat”

  • tag_to_block (Dict[str, Callable[[Schema], Layer]], optional) –

    Mapping from tag to block-type, by default:

    Tags.CONTINUOUS -> Continuous Tags.CATEGORICAL -> Embeddings

  • **branches (dict) – Extra branches to add to the input block.

Returns

Returns a ParallelBlock with a Dict with two branches: continuous and embeddings

Return type

ParallelBlock