Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decoupling of InputBlock(v2) and Embedding Tables, support to Ragged Embeddings Lookup and AverageEmbeddingsByWeightFeature #593

Merged
merged 7 commits into from
Jul 20, 2022

Conversation

gabrielspmoreira
Copy link
Member

@gabrielspmoreira gabrielspmoreira commented Jul 20, 2022

Fixes #580 Fixes #579

Goals ⚽

This PR is based on the prototypes for InputBlock and InferEmbeddings added by @marcromeyn in
NVIDIA-Merlin/Merlin#404

  • It aims to provide a new InputBlockv2 (that will eventually replace the previous InputBlock), which decouples the embedding tables creation from InputBlock, giving more flexibility for the users to define their own embeddings and simplifying the API (e.g. removing the EmbeddingOptions in the InputBlock). The new EmbeddingsFromSchema provides a default implementation that infers the embedding tables that need to be created from the schema.
  • It also provides support for combining sequences of embeddings using weighted average based on another weight feature

Implementation Details 🚧

  • The EmbeddingsFromSchema function creates the EmbeddingTable(s) for categorical features like the logic that was before in EmbeddingFeatures.
  • The EmbeddingTable now supports both non-sequential and sequential features (RaggedTensor, SparseTensor) for embedding lookup, accepting either a single combiner (str or layer), a dict of combiners ({"feature_name": combiner}) or no combiner (returning the Ragged or Sparse tensor in this case)
  • The new AverageEmbeddingsByWeightFeature covers the use case where we want to do weighed average of a sequence of embeddings (3D tensor), using as weight another (sequential) continuous feature). The weights could be for example the frequency of a category in user history, or be based on the time since the user interacted with the item
  • Those new classes are experimental, so the higher-higher level API and examples are not updated in this PR to use the new InputBlockv2.

Testing Details 🔍

  • Have added tests to test_tabular.py to test the new classes

@gabrielspmoreira gabrielspmoreira changed the title Ragged embeddings Decoupling of InputBlock(v2) and Embedding Tables, support to Ragged Embeddings Lookup and AverageEmbeddingsByWeightFeature Jul 20, 2022
@gabrielspmoreira gabrielspmoreira added enhancement New feature or request area/api labels Jul 20, 2022
@gabrielspmoreira gabrielspmoreira added this to the Merlin 22.08 milestone Jul 20, 2022
@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #593 of commit 6d8ce8a80d32e4e7844634aaf2b28bc9604f7d59, no merge conflicts.
Running as SYSTEM
Setting status of 6d8ce8a80d32e4e7844634aaf2b28bc9604f7d59 to PENDING with url https://10.20.13.93:8080/job/merlin_models/749/console and message: 'Pending'
Using context: Jenkins
Building on master in workspace /var/jenkins_home/workspace/merlin_models
using credential nvidia-merlin-bot
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/models/ # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/models/
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/models/ +refs/pull/593/*:refs/remotes/origin/pr/593/* # timeout=10
 > git rev-parse 6d8ce8a80d32e4e7844634aaf2b28bc9604f7d59^{commit} # timeout=10
Checking out Revision 6d8ce8a80d32e4e7844634aaf2b28bc9604f7d59 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 6d8ce8a80d32e4e7844634aaf2b28bc9604f7d59 # timeout=10
Commit message: "Refactoring InputBlockv2, EmbeddingsFromSchema and creating AverageEmbeddingsByWeightFeature"
 > git rev-list --no-walk e8326aaa5e5929e5003929e46868e866bed33796 # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins7205061555137100419.sh
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: testbook in /usr/local/lib/python3.8/dist-packages (0.4.2)
Requirement already satisfied: nbformat>=5.0.4 in /usr/local/lib/python3.8/dist-packages (from testbook) (5.4.0)
Requirement already satisfied: nbclient>=0.4.0 in /usr/local/lib/python3.8/dist-packages (from testbook) (0.6.5)
Requirement already satisfied: traitlets>=5.1 in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (5.3.0)
Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (4.6.1)
Requirement already satisfied: jupyter-core in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (4.10.0)
Requirement already satisfied: fastjsonschema in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (2.15.3)
Requirement already satisfied: jupyter-client>=6.1.5 in /usr/local/lib/python3.8/dist-packages (from nbclient>=0.4.0->testbook) (7.3.4)
Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.8/dist-packages (from nbclient>=0.4.0->testbook) (1.5.5)
Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (21.4.0)
Requirement already satisfied: importlib-resources>=1.4.0; python_version < "3.9" in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (5.8.0)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (0.18.1)
Requirement already satisfied: entrypoints in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (0.4)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (2.8.2)
Requirement already satisfied: pyzmq>=23.0 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (23.2.0)
Requirement already satisfied: tornado>=6.0 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (6.1)
Requirement already satisfied: zipp>=3.1.0; python_version < "3.10" in /usr/local/lib/python3.8/dist-packages (from importlib-resources>=1.4.0; python_version < "3.9"->jsonschema>=2.6->nbformat>=5.0.4->testbook) (3.8.0)
Requirement already satisfied: six>=1.5 in /var/jenkins_home/.local/lib/python3.8/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (1.15.0)
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.2, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: anyio-3.6.1, xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 484 items / 2 skipped

tests/unit/config/test_schema.py .... [ 0%]
tests/unit/datasets/test_advertising.py .s [ 1%]
tests/unit/datasets/test_ecommerce.py ..sss [ 2%]
tests/unit/datasets/test_entertainment.py ....sss. [ 3%]
tests/unit/datasets/test_social.py . [ 4%]
tests/unit/datasets/test_synthetic.py ..... [ 5%]
tests/unit/tf/test_core.py ...... [ 6%]
tests/unit/tf/test_dataset.py ................ [ 9%]
tests/unit/tf/test_public_api.py . [ 9%]
tests/unit/tf/blocks/test_cross.py ........... [ 12%]
tests/unit/tf/blocks/test_dlrm.py ........ [ 13%]
tests/unit/tf/blocks/test_interactions.py . [ 14%]
tests/unit/tf/blocks/test_mlp.py ................................. [ 20%]
tests/unit/tf/blocks/retrieval/test_matrix_factorization.py .. [ 21%]
tests/unit/tf/blocks/retrieval/test_two_tower.py ........... [ 23%]
tests/unit/tf/core/test_aggregation.py ......... [ 25%]
tests/unit/tf/core/test_base.py .. [ 25%]
tests/unit/tf/core/test_combinators.py ............... [ 28%]
tests/unit/tf/core/test_index.py ... [ 29%]
tests/unit/tf/core/test_prediction.py .. [ 29%]
tests/unit/tf/core/test_tabular.py .... [ 30%]
tests/unit/tf/core/test_transformations.py ...... [ 32%]
tests/unit/tf/data_augmentation/test_misc.py . [ 32%]
tests/unit/tf/data_augmentation/test_negative_sampling.py .......... [ 34%]
tests/unit/tf/data_augmentation/test_noise.py ..... [ 35%]
tests/unit/tf/examples/test_01_getting_started.py . [ 35%]
tests/unit/tf/examples/test_02_dataschema.py . [ 35%]
tests/unit/tf/examples/test_03_exploring_different_models.py . [ 35%]
tests/unit/tf/examples/test_04_export_ranking_models.py . [ 36%]
tests/unit/tf/examples/test_05_export_retrieval_model.py . [ 36%]
tests/unit/tf/examples/test_06_advanced_own_architecture.py . [ 36%]
tests/unit/tf/examples/test_usecase_pretrained_embeddings.py . [ 36%]
tests/unit/tf/inputs/test_continuous.py ..... [ 37%]
tests/unit/tf/inputs/test_embedding.py ..F....F.FFFF............. [ 43%]
tests/unit/tf/inputs/test_tabular.py ........... [ 45%]
tests/unit/tf/layers/test_queue.py .............. [ 48%]
tests/unit/tf/losses/test_losses.py ....................... [ 53%]
tests/unit/tf/metrics/test_metrics_popularity.py ..... [ 54%]
tests/unit/tf/metrics/test_metrics_topk.py .................. [ 57%]
tests/unit/tf/models/test_base.py ........... [ 60%]
tests/unit/tf/models/test_benchmark.py .. [ 60%]
tests/unit/tf/models/test_ranking.py ................ [ 63%]
tests/unit/tf/models/test_retrieval.py ............................... [ 70%]
tests/unit/tf/prediction_tasks/test_classification.py .. [ 70%]
tests/unit/tf/prediction_tasks/test_multi_task.py ....... [ 72%]
tests/unit/tf/prediction_tasks/test_next_item.py ..... [ 73%]
tests/unit/tf/prediction_tasks/test_regression.py .. [ 73%]
tests/unit/tf/prediction_tasks/test_sampling.py ...... [ 74%]
tests/unit/tf/utils/test_batch.py .... [ 75%]
tests/unit/tf/utils/test_tf_utils.py .. [ 76%]
tests/unit/torch/test_dataset.py ......... [ 77%]
tests/unit/torch/test_public_api.py . [ 78%]
tests/unit/torch/block/test_base.py .... [ 78%]
tests/unit/torch/block/test_mlp.py . [ 79%]
tests/unit/torch/features/test_continuous.py .. [ 79%]
tests/unit/torch/features/test_embedding.py .............. [ 82%]
tests/unit/torch/features/test_tabular.py .... [ 83%]
tests/unit/torch/model/test_head.py ............ [ 85%]
tests/unit/torch/model/test_model.py .. [ 86%]
tests/unit/torch/tabular/test_aggregation.py ........ [ 87%]
tests/unit/torch/tabular/test_tabular.py ... [ 88%]
tests/unit/torch/tabular/test_transformations.py ....... [ 89%]
tests/unit/utils/test_schema_utils.py ................................ [ 96%]
tests/unit/xgb/test_xgboost.py ................. [100%]

=================================== FAILURES ===================================
______________ TestEmbeddingTable.test_raises_with_invalid_schema ______________

self = <tests.unit.tf.inputs.test_embedding.TestEmbeddingTable object at 0x7fbad830d340>

def test_raises_with_invalid_schema(self):
    column_schema = ColumnSchema(["item_id"])
    with pytest.raises(ValueError) as exc_info:
      mm.EmbeddingTable(16, column_schema)

tests/unit/tf/inputs/test_embedding.py:67:


merlin/models/tf/inputs/embedding.py:171: in init
super(EmbeddingTable, self).init(
merlin/models/tf/inputs/embedding.py:64: in init
super(EmbeddingTableBase, self).init(trainable=trainable, **kwargs)
merlin/models/tf/core/base.py:164: in init
super(Block, self).init(**kwargs)
/usr/local/lib/python3.8/dist-packages/tensorflow/python/training/tracking/base.py:587: in _method_wrapper
result = method(self, *args, **kwargs)
/usr/local/lib/python3.8/dist-packages/keras/engine/base_layer.py:367: in init
self._init_set_name(name)


self = EmbeddingTable(), name = ['item_id'], zero_based = True

def _init_set_name(self, name, zero_based=True):
  if name is None:
    self._name = backend.unique_object_name(
        generic_utils.to_snake_case(self.__class__.__name__),
        zero_based=zero_based)
  elif isinstance(name, str):
    backend.observe_object_name(name)
    self._name = name
  else:
  raise TypeError(
        f'Expected `name` argument to be a string, but got: {name}')

E TypeError: Expected name argument to be a string, but got: ['item_id']

/usr/local/lib/python3.8/dist-packages/keras/engine/base_layer.py:2528: TypeError
_________________ TestEmbeddingTable.test_dense_with_combiner __________________

self = <tests.unit.tf.inputs.test_embedding.TestEmbeddingTable object at 0x7fbad830ddc0>

def test_dense_with_combiner(self):
    dim = 16
    column_schema = self.sample_column_schema
    layer = mm.EmbeddingTable(dim, column_schema, combiner="mean")

    inputs = tf.constant([1])
    with pytest.raises(ValueError) as exc_info:
        layer(inputs)
  assert "Combiner only supported for RaggedTensor and SparseTensor." in str(exc_info.value)

E assert 'Combiner only supported for RaggedTensor and SparseTensor.' in 'Exception encountered when calling layer "item_id" (type EmbeddingTable).\n\nCombiner (mean) only supported for Ragge...r "item_id" (type EmbeddingTable):\n • inputs=tf.Tensor(shape=(1,), dtype=int32)\n • kwargs={'training': 'None'}'
E + where 'Exception encountered when calling layer "item_id" (type EmbeddingTable).\n\nCombiner (mean) only supported for Ragge...r "item_id" (type EmbeddingTable):\n • inputs=tf.Tensor(shape=(1,), dtype=int32)\n • kwargs={'training': 'None'}' = str(ValueError('Exception encountered when calling layer "item_id" (type EmbeddingTable).\n\nCombiner (mean) only supporte... "item_id" (type EmbeddingTable):\n • inputs=tf.Tensor(shape=(1,), dtype=int32)\n • kwargs={'training': 'None'}'))
E + where ValueError('Exception encountered when calling layer "item_id" (type EmbeddingTable).\n\nCombiner (mean) only supporte... "item_id" (type EmbeddingTable):\n • inputs=tf.Tensor(shape=(1,), dtype=int32)\n • kwargs={'training': 'None'}') = <ExceptionInfo ValueError('Exception encountered when calling layer "item_id" (type EmbeddingTable).\n\nCombiner (mean..." (type EmbeddingTable):\n • inputs=tf.Tensor(shape=(1,), dtype=int32)\n • kwargs={'training': 'None'}') tblen=4>.value

tests/unit/tf/inputs/test_embedding.py:108: AssertionError
__________________ TestEmbeddingTable.test_embedding_in_model __________________

self = <tests.unit.tf.inputs.test_embedding.TestEmbeddingTable object at 0x7fbb4c74b070>
music_streaming_data = <merlin.io.dataset.Dataset object at 0x7fbc4dcd1b20>

def test_embedding_in_model(self, music_streaming_data: Dataset):
    dim = 16
    item_id_col_schema = music_streaming_data.schema.select_by_name("item_id").first
    embedding_layer = mm.EmbeddingTable(dim, item_id_col_schema)
    model = mm.Model(
        tf.keras.layers.Lambda(lambda inputs: inputs["item_id"]),
        embedding_layer,
        mm.BinaryClassificationTask("click"),
    )
  model_test(model, music_streaming_data)

tests/unit/tf/inputs/test_embedding.py:132:


merlin/models/tf/utils/testing_utils.py:93: in model_test
model.save(tmpdir)
/usr/local/lib/python3.8/dist-packages/keras/utils/traceback_utils.py:67: in error_handler
raise e.with_traceback(filtered_tb) from None
/usr/lib/python3.8/contextlib.py:120: in exit
next(self.gen)
merlin/models/tf/models/base.py:733: in call
outputs, context = self._call_child(block, outputs, context)
merlin/models/tf/models/base.py:758: in _call_child
outputs = call_layer(child, inputs, **call_kwargs)
merlin/models/tf/utils/tf_utils.py:362: in call_layer
return layer(inputs, *args, **filtered_kwargs)
merlin/models/config/schema.py:58: in call
return super().call(*args, **kwargs)


self = EmbeddingTable(
(table): Embedding(
(_feature_shapes): Dict(
(item_genres): TensorShape([50, None])
...nt64
(country): tf.int64
(item_recency): tf.float32
(user_age): tf.float32
(position): tf.float32
)
)
inputs = <tf.Tensor 'inputs:0' shape=(None, 1) dtype=int64>
kwargs = {'features': {'country': <tf.Tensor 'features:0' shape= dtype=int64>, 'item_category': <tf.Tensor 'features_1...e=int64>, 'item_id': <tf.Tensor 'features_3:0' shape= dtype=int64>, ...}, 'testing': False, 'training': False}
out = <tf.Tensor 'item_id/embedding_lookup/Identity_1:0' shape=(None, 1, 16) dtype=float32>

def call(self, inputs, **kwargs):
    """
    Parameters
    ----------
    inputs : Union[tf.Tensor, tf.RaggedTensor, tf.SparseTensor]
        Tensors representing the input batch

    Returns
    -------
    A tensor corresponding to the embeddings for inputs
    """
    if isinstance(inputs, dict):
        inputs = inputs[self.col_schema.name]

    """
    dtype = backend.dtype(inputs)
    if dtype != "int32" and dtype != "int64":
        inputs = tf.cast(inputs, "int32")
    """

    if self.combiner and isinstance(self.combiner, str):
        if not isinstance(inputs, (tf.RaggedTensor, tf.SparseTensor)):
            raise ValueError(
                f"Combiner ({self.combiner}) only supported for RaggedTensor and SparseTensor. "
                f"Received: {type(inputs)}. Column name: {self.col_schema.name}"
            )
        if isinstance(inputs, tf.RaggedTensor):
            inputs = inputs.to_sparse()
        out = tf.nn.safe_embedding_lookup_sparse(
            self.table.embeddings, inputs, None, combiner=self.combiner
        )
    else:
        if not isinstance(inputs, (tf.RaggedTensor, tf.Tensor)):
            raise ValueError(
                "EmbeddingTable supports only RaggedTensor and Tensor input types. "
                f"Received: {type(inputs)}"
            )

        out = call_layer(self.table, inputs, **kwargs)
        if isinstance(self.combiner, tf.keras.layers.Layer):
            out = call_layer(self.combiner, out, **kwargs)
      elif tf.rank(out) == 3 and out.shape[1] == 1:

E tensorflow.python.framework.errors_impl.OperatorNotAllowedInGraphError: Exception encountered when calling layer "item_id" (type EmbeddingTable).
E
E Using a symbolic tf.Tensor as a Python bool is not allowed: AutoGraph did convert this function. This might indicate you are trying to use an unsupported feature.
E
E Call arguments received by layer "item_id" (type EmbeddingTable):
E • args=('tf.Tensor(shape=(None, 1), dtype=int64)',)
E • kwargs={'features': {'item_genres': 'tf.Tensor(shape=, dtype=int64)', 'user_genres': 'tf.Tensor(shape=, dtype=int64)', 'session_id': 'tf.Tensor(shape=, dtype=int64)', 'item_id': 'tf.Tensor(shape=, dtype=int64)', 'item_category': 'tf.Tensor(shape=, dtype=int64)', 'user_id': 'tf.Tensor(shape=, dtype=int64)', 'country': 'tf.Tensor(shape=, dtype=int64)', 'item_recency': 'tf.Tensor(shape=, dtype=float32)', 'user_age': 'tf.Tensor(shape=, dtype=float32)', 'position': 'tf.Tensor(shape=, dtype=float32)'}, 'training': 'False', 'testing': 'False'}

merlin/models/tf/inputs/embedding.py:289: OperatorNotAllowedInGraphError
----------------------------- Captured stdout call -----------------------------

1/2 [==============>...............] - ETA: 0s - loss: 0.6931 - precision: 0.5263 - recall: 0.4348 - binary_accuracy: 0.5600 - auc: 0.5129 - regularization_loss: 0.0000e+00����������������������������������������������������������������������������������������������������������������������������������������������������������������������������
2/2 [==============================] - 1s 33ms/step - loss: 0.6912 - precision: 0.5455 - recall: 0.5217 - binary_accuracy: 0.5800 - auc: 0.5674 - regularization_loss: 0.0000e+00
____________________ TestEmbeddingTable.test_non_trainable _____________________

self = <tests.unit.tf.inputs.test_embedding.TestEmbeddingTable object at 0x7fbb4c74b1c0>
music_streaming_data = <merlin.io.dataset.Dataset object at 0x7fba9227b1c0>

def test_non_trainable(self, music_streaming_data: Dataset):
    dim = 16
    item_id_col_schema = music_streaming_data.schema.select_by_name("item_id").first
    embedding_layer = mm.EmbeddingTable(dim, item_id_col_schema, trainable=False)
    inputs = tf.constant([1])

    model = mm.Model(
        tf.keras.layers.Lambda(lambda inputs: inputs["item_id"]),
        embedding_layer,
        mm.BinaryClassificationTask("click"),
    )
  model_test(model, music_streaming_data)

tests/unit/tf/inputs/test_embedding.py:145:


merlin/models/tf/utils/testing_utils.py:93: in model_test
model.save(tmpdir)
/usr/local/lib/python3.8/dist-packages/keras/utils/traceback_utils.py:67: in error_handler
raise e.with_traceback(filtered_tb) from None
/usr/lib/python3.8/contextlib.py:120: in exit
next(self.gen)
merlin/models/tf/models/base.py:733: in call
outputs, context = self._call_child(block, outputs, context)
merlin/models/tf/models/base.py:758: in _call_child
outputs = call_layer(child, inputs, **call_kwargs)
merlin/models/tf/utils/tf_utils.py:362: in call_layer
return layer(inputs, *args, **filtered_kwargs)
merlin/models/config/schema.py:58: in call
return super().call(*args, **kwargs)


self = EmbeddingTable(
(table): Embedding(
(_feature_shapes): Dict(
(item_genres): TensorShape([50, None])
...nt64
(country): tf.int64
(item_recency): tf.float32
(user_age): tf.float32
(position): tf.float32
)
)
inputs = <tf.Tensor 'inputs:0' shape=(None, 1) dtype=int64>
kwargs = {'features': {'country': <tf.Tensor 'features:0' shape= dtype=int64>, 'item_category': <tf.Tensor 'features_1...e=int64>, 'item_id': <tf.Tensor 'features_3:0' shape= dtype=int64>, ...}, 'testing': False, 'training': False}
out = <tf.Tensor 'item_id/embedding_lookup/Identity_1:0' shape=(None, 1, 16) dtype=float32>

def call(self, inputs, **kwargs):
    """
    Parameters
    ----------
    inputs : Union[tf.Tensor, tf.RaggedTensor, tf.SparseTensor]
        Tensors representing the input batch

    Returns
    -------
    A tensor corresponding to the embeddings for inputs
    """
    if isinstance(inputs, dict):
        inputs = inputs[self.col_schema.name]

    """
    dtype = backend.dtype(inputs)
    if dtype != "int32" and dtype != "int64":
        inputs = tf.cast(inputs, "int32")
    """

    if self.combiner and isinstance(self.combiner, str):
        if not isinstance(inputs, (tf.RaggedTensor, tf.SparseTensor)):
            raise ValueError(
                f"Combiner ({self.combiner}) only supported for RaggedTensor and SparseTensor. "
                f"Received: {type(inputs)}. Column name: {self.col_schema.name}"
            )
        if isinstance(inputs, tf.RaggedTensor):
            inputs = inputs.to_sparse()
        out = tf.nn.safe_embedding_lookup_sparse(
            self.table.embeddings, inputs, None, combiner=self.combiner
        )
    else:
        if not isinstance(inputs, (tf.RaggedTensor, tf.Tensor)):
            raise ValueError(
                "EmbeddingTable supports only RaggedTensor and Tensor input types. "
                f"Received: {type(inputs)}"
            )

        out = call_layer(self.table, inputs, **kwargs)
        if isinstance(self.combiner, tf.keras.layers.Layer):
            out = call_layer(self.combiner, out, **kwargs)
      elif tf.rank(out) == 3 and out.shape[1] == 1:

E tensorflow.python.framework.errors_impl.OperatorNotAllowedInGraphError: Exception encountered when calling layer "item_id" (type EmbeddingTable).
E
E Using a symbolic tf.Tensor as a Python bool is not allowed: AutoGraph did convert this function. This might indicate you are trying to use an unsupported feature.
E
E Call arguments received by layer "item_id" (type EmbeddingTable):
E • args=('tf.Tensor(shape=(None, 1), dtype=int64)',)
E • kwargs={'features': {'item_genres': 'tf.Tensor(shape=, dtype=int64)', 'user_genres': 'tf.Tensor(shape=, dtype=int64)', 'session_id': 'tf.Tensor(shape=, dtype=int64)', 'item_id': 'tf.Tensor(shape=, dtype=int64)', 'item_category': 'tf.Tensor(shape=, dtype=int64)', 'user_id': 'tf.Tensor(shape=, dtype=int64)', 'country': 'tf.Tensor(shape=, dtype=int64)', 'item_recency': 'tf.Tensor(shape=, dtype=float32)', 'user_age': 'tf.Tensor(shape=, dtype=float32)', 'position': 'tf.Tensor(shape=, dtype=float32)'}, 'training': 'False', 'testing': 'False'}

merlin/models/tf/inputs/embedding.py:289: OperatorNotAllowedInGraphError
----------------------------- Captured stdout call -----------------------------

1/2 [==============>...............] - ETA: 0s - loss: 0.6987 - precision: 0.3667 - recall: 0.4583 - binary_accuracy: 0.3600 - auc: 0.3013 - regularization_loss: 0.0000e+00����������������������������������������������������������������������������������������������������������������������������������������������������������������������������
2/2 [==============================] - 1s 27ms/step - loss: 0.6955 - precision: 0.4643 - recall: 0.5000 - binary_accuracy: 0.4400 - auc: 0.4261 - regularization_loss: 0.0000e+00
________________ TestEmbeddingTable.test_from_pretrained[True] _________________

self = <tests.unit.tf.inputs.test_embedding.TestEmbeddingTable object at 0x7fbb4c74b430>
trainable = True
music_streaming_data = <merlin.io.dataset.Dataset object at 0x7fbcea779550>

@pytest.mark.parametrize("trainable", [True, False])
def test_from_pretrained(self, trainable, music_streaming_data: Dataset):
    vocab_size = music_streaming_data.schema.column_schemas["item_id"].int_domain.max + 1
    embedding_dim = 32
    weights = np.random.rand(vocab_size, embedding_dim)
    pre_trained_weights_df = pd.DataFrame(weights)

    embedding_table = mm.EmbeddingTable.from_pretrained(
        pre_trained_weights_df, name="item_id", trainable=trainable
    )

    assert embedding_table.input_dim == vocab_size

    inputs = tf.constant([1])
    output = embedding_table(inputs)

    assert list(output.shape) == [1, embedding_dim]
    np.testing.assert_array_almost_equal(weights, embedding_table.table.embeddings)

    model = mm.Model(
        tf.keras.layers.Lambda(lambda inputs: inputs["item_id"]),
        embedding_table,
        mm.BinaryClassificationTask("click"),
    )
  model_test(model, music_streaming_data)

tests/unit/tf/inputs/test_embedding.py:182:


merlin/models/tf/utils/testing_utils.py:93: in model_test
model.save(tmpdir)
/usr/local/lib/python3.8/dist-packages/keras/utils/traceback_utils.py:67: in error_handler
raise e.with_traceback(filtered_tb) from None
/usr/lib/python3.8/contextlib.py:120: in exit
next(self.gen)
merlin/models/tf/models/base.py:733: in call
outputs, context = self._call_child(block, outputs, context)
merlin/models/tf/models/base.py:758: in _call_child
outputs = call_layer(child, inputs, **call_kwargs)
merlin/models/tf/utils/tf_utils.py:362: in call_layer
return layer(inputs, *args, **filtered_kwargs)
merlin/models/config/schema.py:58: in call
return super().call(*args, **kwargs)


self = EmbeddingTable(
(table): Embedding(
(embeddings): <tf.Variable 'item_id/embeddings:0' shape=(10001, 32) dtype=fl...nt64
(country): tf.int64
(item_recency): tf.float32
(user_age): tf.float32
(position): tf.float32
)
)
inputs = <tf.Tensor 'inputs:0' shape=(None, 1) dtype=int64>
kwargs = {'features': {'country': <tf.Tensor 'features:0' shape= dtype=int64>, 'item_category': <tf.Tensor 'features_1...e=int64>, 'item_id': <tf.Tensor 'features_3:0' shape= dtype=int64>, ...}, 'testing': False, 'training': False}
out = <tf.Tensor 'item_id/embedding_lookup/Identity_1:0' shape=(None, 1, 32) dtype=float32>

def call(self, inputs, **kwargs):
    """
    Parameters
    ----------
    inputs : Union[tf.Tensor, tf.RaggedTensor, tf.SparseTensor]
        Tensors representing the input batch

    Returns
    -------
    A tensor corresponding to the embeddings for inputs
    """
    if isinstance(inputs, dict):
        inputs = inputs[self.col_schema.name]

    """
    dtype = backend.dtype(inputs)
    if dtype != "int32" and dtype != "int64":
        inputs = tf.cast(inputs, "int32")
    """

    if self.combiner and isinstance(self.combiner, str):
        if not isinstance(inputs, (tf.RaggedTensor, tf.SparseTensor)):
            raise ValueError(
                f"Combiner ({self.combiner}) only supported for RaggedTensor and SparseTensor. "
                f"Received: {type(inputs)}. Column name: {self.col_schema.name}"
            )
        if isinstance(inputs, tf.RaggedTensor):
            inputs = inputs.to_sparse()
        out = tf.nn.safe_embedding_lookup_sparse(
            self.table.embeddings, inputs, None, combiner=self.combiner
        )
    else:
        if not isinstance(inputs, (tf.RaggedTensor, tf.Tensor)):
            raise ValueError(
                "EmbeddingTable supports only RaggedTensor and Tensor input types. "
                f"Received: {type(inputs)}"
            )

        out = call_layer(self.table, inputs, **kwargs)
        if isinstance(self.combiner, tf.keras.layers.Layer):
            out = call_layer(self.combiner, out, **kwargs)
      elif tf.rank(out) == 3 and out.shape[1] == 1:

E tensorflow.python.framework.errors_impl.OperatorNotAllowedInGraphError: Exception encountered when calling layer "item_id" (type EmbeddingTable).
E
E Using a symbolic tf.Tensor as a Python bool is not allowed: AutoGraph did convert this function. This might indicate you are trying to use an unsupported feature.
E
E Call arguments received by layer "item_id" (type EmbeddingTable):
E • args=('tf.Tensor(shape=(None, 1), dtype=int64)',)
E • kwargs={'features': {'item_genres': 'tf.Tensor(shape=, dtype=int64)', 'user_genres': 'tf.Tensor(shape=, dtype=int64)', 'session_id': 'tf.Tensor(shape=, dtype=int64)', 'item_id': 'tf.Tensor(shape=, dtype=int64)', 'item_category': 'tf.Tensor(shape=, dtype=int64)', 'user_id': 'tf.Tensor(shape=, dtype=int64)', 'country': 'tf.Tensor(shape=, dtype=int64)', 'item_recency': 'tf.Tensor(shape=, dtype=float32)', 'user_age': 'tf.Tensor(shape=, dtype=float32)', 'position': 'tf.Tensor(shape=, dtype=float32)'}, 'training': 'False', 'testing': 'False'}

merlin/models/tf/inputs/embedding.py:289: OperatorNotAllowedInGraphError
----------------------------- Captured stdout call -----------------------------

1/2 [==============>...............] - ETA: 0s - loss: 0.8670 - precision: 0.4000 - recall: 0.0690 - binary_accuracy: 0.4000 - auc: 0.3202 - regularization_loss: 0.0000e+00����������������������������������������������������������������������������������������������������������������������������������������������������������������������������
2/2 [==============================] - 1s 29ms/step - loss: 0.8315 - precision: 0.4444 - recall: 0.0702 - binary_accuracy: 0.4200 - auc: 0.4094 - regularization_loss: 0.0000e+00
________________ TestEmbeddingTable.test_from_pretrained[False] ________________

self = <tests.unit.tf.inputs.test_embedding.TestEmbeddingTable object at 0x7fbb4c74b4c0>
trainable = False
music_streaming_data = <merlin.io.dataset.Dataset object at 0x7fbc4ded8400>

@pytest.mark.parametrize("trainable", [True, False])
def test_from_pretrained(self, trainable, music_streaming_data: Dataset):
    vocab_size = music_streaming_data.schema.column_schemas["item_id"].int_domain.max + 1
    embedding_dim = 32
    weights = np.random.rand(vocab_size, embedding_dim)
    pre_trained_weights_df = pd.DataFrame(weights)

    embedding_table = mm.EmbeddingTable.from_pretrained(
        pre_trained_weights_df, name="item_id", trainable=trainable
    )

    assert embedding_table.input_dim == vocab_size

    inputs = tf.constant([1])
    output = embedding_table(inputs)

    assert list(output.shape) == [1, embedding_dim]
    np.testing.assert_array_almost_equal(weights, embedding_table.table.embeddings)

    model = mm.Model(
        tf.keras.layers.Lambda(lambda inputs: inputs["item_id"]),
        embedding_table,
        mm.BinaryClassificationTask("click"),
    )
  model_test(model, music_streaming_data)

tests/unit/tf/inputs/test_embedding.py:182:


merlin/models/tf/utils/testing_utils.py:93: in model_test
model.save(tmpdir)
/usr/local/lib/python3.8/dist-packages/keras/utils/traceback_utils.py:67: in error_handler
raise e.with_traceback(filtered_tb) from None
/usr/lib/python3.8/contextlib.py:120: in exit
next(self.gen)
merlin/models/tf/models/base.py:733: in call
outputs, context = self._call_child(block, outputs, context)
merlin/models/tf/models/base.py:758: in _call_child
outputs = call_layer(child, inputs, **call_kwargs)
merlin/models/tf/utils/tf_utils.py:362: in call_layer
return layer(inputs, *args, **filtered_kwargs)
merlin/models/config/schema.py:58: in call
return super().call(*args, **kwargs)


self = EmbeddingTable(
(table): Embedding(
(embeddings): <tf.Variable 'item_id/embeddings:0' shape=(10001, 32) dtype=fl...nt64
(country): tf.int64
(item_recency): tf.float32
(user_age): tf.float32
(position): tf.float32
)
)
inputs = <tf.Tensor 'inputs:0' shape=(None, 1) dtype=int64>
kwargs = {'features': {'country': <tf.Tensor 'features:0' shape= dtype=int64>, 'item_category': <tf.Tensor 'features_1...e=int64>, 'item_id': <tf.Tensor 'features_3:0' shape= dtype=int64>, ...}, 'testing': False, 'training': False}
out = <tf.Tensor 'item_id/embedding_lookup/Identity_1:0' shape=(None, 1, 32) dtype=float32>

def call(self, inputs, **kwargs):
    """
    Parameters
    ----------
    inputs : Union[tf.Tensor, tf.RaggedTensor, tf.SparseTensor]
        Tensors representing the input batch

    Returns
    -------
    A tensor corresponding to the embeddings for inputs
    """
    if isinstance(inputs, dict):
        inputs = inputs[self.col_schema.name]

    """
    dtype = backend.dtype(inputs)
    if dtype != "int32" and dtype != "int64":
        inputs = tf.cast(inputs, "int32")
    """

    if self.combiner and isinstance(self.combiner, str):
        if not isinstance(inputs, (tf.RaggedTensor, tf.SparseTensor)):
            raise ValueError(
                f"Combiner ({self.combiner}) only supported for RaggedTensor and SparseTensor. "
                f"Received: {type(inputs)}. Column name: {self.col_schema.name}"
            )
        if isinstance(inputs, tf.RaggedTensor):
            inputs = inputs.to_sparse()
        out = tf.nn.safe_embedding_lookup_sparse(
            self.table.embeddings, inputs, None, combiner=self.combiner
        )
    else:
        if not isinstance(inputs, (tf.RaggedTensor, tf.Tensor)):
            raise ValueError(
                "EmbeddingTable supports only RaggedTensor and Tensor input types. "
                f"Received: {type(inputs)}"
            )

        out = call_layer(self.table, inputs, **kwargs)
        if isinstance(self.combiner, tf.keras.layers.Layer):
            out = call_layer(self.combiner, out, **kwargs)
      elif tf.rank(out) == 3 and out.shape[1] == 1:

E tensorflow.python.framework.errors_impl.OperatorNotAllowedInGraphError: Exception encountered when calling layer "item_id" (type EmbeddingTable).
E
E Using a symbolic tf.Tensor as a Python bool is not allowed: AutoGraph did convert this function. This might indicate you are trying to use an unsupported feature.
E
E Call arguments received by layer "item_id" (type EmbeddingTable):
E • args=('tf.Tensor(shape=(None, 1), dtype=int64)',)
E • kwargs={'features': {'item_genres': 'tf.Tensor(shape=, dtype=int64)', 'user_genres': 'tf.Tensor(shape=, dtype=int64)', 'session_id': 'tf.Tensor(shape=, dtype=int64)', 'item_id': 'tf.Tensor(shape=, dtype=int64)', 'item_category': 'tf.Tensor(shape=, dtype=int64)', 'user_id': 'tf.Tensor(shape=, dtype=int64)', 'country': 'tf.Tensor(shape=, dtype=int64)', 'item_recency': 'tf.Tensor(shape=, dtype=float32)', 'user_age': 'tf.Tensor(shape=, dtype=float32)', 'position': 'tf.Tensor(shape=, dtype=float32)'}, 'training': 'False', 'testing': 'False'}

merlin/models/tf/inputs/embedding.py:289: OperatorNotAllowedInGraphError
----------------------------- Captured stdout call -----------------------------

1/2 [==============>...............] - ETA: 0s - loss: 0.6527 - precision: 0.5333 - recall: 0.6957 - binary_accuracy: 0.5800 - auc: 0.6522 - regularization_loss: 0.0000e+00����������������������������������������������������������������������������������������������������������������������������������������������������������������������������
2/2 [==============================] - 1s 25ms/step - loss: 0.6925 - precision: 0.5577 - recall: 0.5273 - binary_accuracy: 0.5100 - auc: 0.5473 - regularization_loss: 0.0000e+00
=============================== warnings summary ===============================
../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:36
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:36: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
'nearest': pil_image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:37
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:37: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
'bilinear': pil_image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:38
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:38: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
'bicubic': pil_image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:39
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:39: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
'hamming': pil_image.HAMMING,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:40
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:40: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
'box': pil_image.BOX,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:41
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:41: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
'lanczos': pil_image.LANCZOS,

tests/unit/datasets/test_ecommerce.py::test_synthetic_aliccp_raw_data
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-True-10]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-True-9]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-True-8]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-False-10]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-False-9]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-False-8]
tests/unit/tf/test_dataset.py::test_tf_catname_ordering
tests/unit/tf/test_dataset.py::test_tf_map
/usr/local/lib/python3.8/dist-packages/cudf/core/frame.py:384: UserWarning: The deep parameter is ignored and is only included for pandas compatibility.
warnings.warn(

tests/unit/tf/blocks/retrieval/test_matrix_factorization.py::test_matrix_factorization_embedding_export
tests/unit/tf/blocks/retrieval/test_matrix_factorization.py::test_matrix_factorization_embedding_export
tests/unit/tf/blocks/retrieval/test_two_tower.py::test_matrix_factorization_embedding_export
tests/unit/tf/blocks/retrieval/test_two_tower.py::test_matrix_factorization_embedding_export
tests/unit/tf/inputs/test_embedding.py::test_embedding_features_exporting_and_loading_pretrained_initializer
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py:747: DeprecationWarning: This function is deprecated in favor of cupy.from_dlpack
embeddings_cupy = cupy.fromDlpack(to_dlpack(tf.convert_to_tensor(embeddings)))

tests/unit/tf/core/test_index.py: 4 warnings
tests/unit/tf/models/test_retrieval.py: 53 warnings
tests/unit/tf/prediction_tasks/test_next_item.py: 3 warnings
tests/unit/tf/utils/test_batch.py: 2 warnings
/tmp/autograph_generated_file8bq568dr.py:8: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
ag
.converted_call(ag__.ld(warnings).warn, ("The 'warn' method is deprecated, use 'warning' instead", ag__.ld(DeprecationWarning), 2), None, fscope)

tests/unit/tf/data_augmentation/test_noise.py: 4 warnings
tests/unit/tf/models/test_base.py: 8 warnings
/usr/local/lib/python3.8/dist-packages/tensorflow/python/util/dispatch.py:1082: UserWarning: tf.keras.backend.random_binomial is deprecated, and will be removed in a future version.Please use tf.keras.backend.random_bernoulli instead.
return dispatch_target(*args, **kwargs)

tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[True]
tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[True]
tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[False]
tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[False]
/usr/local/lib/python3.8/dist-packages/numpy/core/numeric.py:2446: DeprecationWarning: elementwise comparison failed; this will raise an error in the future.
return bool(asarray(a1 == a2).all())

tests/unit/torch/block/test_mlp.py::test_mlp_block
/var/jenkins_home/workspace/merlin_models/models/tests/unit/torch/_conftest.py:151: UserWarning: Creating a tensor from a list of numpy.ndarrays is extremely slow. Please consider converting the list to a single numpy.ndarray with numpy.array() before converting to a tensor. (Triggered internally at ../torch/csrc/utils/tensor_new.cpp:201.)
return {key: torch.tensor(value) for key, value in data.items()}

tests/unit/xgb/test_xgboost.py::test_without_dask_client
tests/unit/xgb/test_xgboost.py::TestXGBoost::test_music_regression
tests/unit/xgb/test_xgboost.py::test_gpu_hist_dmatrix[fit_kwargs0-DaskDeviceQuantileDMatrix]
tests/unit/xgb/test_xgboost.py::test_gpu_hist_dmatrix[fit_kwargs1-DaskDMatrix]
tests/unit/xgb/test_xgboost.py::TestEvals::test_multiple
tests/unit/xgb/test_xgboost.py::TestEvals::test_default
tests/unit/xgb/test_xgboost.py::TestEvals::test_train_and_valid
tests/unit/xgb/test_xgboost.py::TestEvals::test_invalid_data
/var/jenkins_home/workspace/merlin_models/models/merlin/models/xgb/init.py:266: UserWarning: Ignoring list columns as inputs to XGBoost model: ['item_genres', 'user_genres'].
warnings.warn(f"Ignoring list columns as inputs to XGBoost model: {list_column_names}.")

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
SKIPPED [1] tests/unit/implicit/init.py:18: could not import 'implicit': No module named 'implicit'
SKIPPED [1] tests/unit/lightfm/init.py:18: could not import 'lightfm': No module named 'lightfm'
SKIPPED [1] tests/unit/datasets/test_advertising.py:20: No data-dir available, pass it through env variable $INPUT_DATA_DIR
SKIPPED [1] tests/unit/datasets/test_ecommerce.py:62: ALI-CCP data is not available, pass it through env variable $DATA_PATH_ALICCP
SKIPPED [1] tests/unit/datasets/test_ecommerce.py:78: ALI-CCP data is not available, pass it through env variable $DATA_PATH_ALICCP
SKIPPED [1] tests/unit/datasets/test_ecommerce.py:92: ALI-CCP data is not available, pass it through env variable $DATA_PATH_ALICCP
SKIPPED [3] tests/unit/datasets/test_entertainment.py:44: No data-dir available, pass it through env variable $INPUT_DATA_DIR
===== 6 failed, 471 passed, 9 skipped, 107 warnings in 1682.20s (0:28:02) ======
Build step 'Execute shell' marked build as failure
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/models/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log"
[merlin_models] $ /bin/bash /tmp/jenkins18365834248956493578.sh

@github-actions
Copy link

Documentation preview

https://nvidia-merlin.github.io/models/review/pr-593

@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #593 of commit 4e60d4f866337b9f74746380fb9252a4cabf4eb8, no merge conflicts.
Running as SYSTEM
Setting status of 4e60d4f866337b9f74746380fb9252a4cabf4eb8 to PENDING with url https://10.20.13.93:8080/job/merlin_models/750/console and message: 'Pending'
Using context: Jenkins
Building on master in workspace /var/jenkins_home/workspace/merlin_models
using credential nvidia-merlin-bot
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/models/ # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/models/
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/models/ +refs/pull/593/*:refs/remotes/origin/pr/593/* # timeout=10
 > git rev-parse 4e60d4f866337b9f74746380fb9252a4cabf4eb8^{commit} # timeout=10
Checking out Revision 4e60d4f866337b9f74746380fb9252a4cabf4eb8 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 4e60d4f866337b9f74746380fb9252a4cabf4eb8 # timeout=10
Commit message: "Fixed tests"
 > git rev-list --no-walk 6d8ce8a80d32e4e7844634aaf2b28bc9604f7d59 # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins8007419558442995416.sh
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: testbook in /usr/local/lib/python3.8/dist-packages (0.4.2)
Requirement already satisfied: nbformat>=5.0.4 in /usr/local/lib/python3.8/dist-packages (from testbook) (5.4.0)
Requirement already satisfied: nbclient>=0.4.0 in /usr/local/lib/python3.8/dist-packages (from testbook) (0.6.5)
Requirement already satisfied: traitlets>=5.1 in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (5.3.0)
Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (4.6.1)
Requirement already satisfied: jupyter-core in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (4.10.0)
Requirement already satisfied: fastjsonschema in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (2.15.3)
Requirement already satisfied: jupyter-client>=6.1.5 in /usr/local/lib/python3.8/dist-packages (from nbclient>=0.4.0->testbook) (7.3.4)
Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.8/dist-packages (from nbclient>=0.4.0->testbook) (1.5.5)
Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (21.4.0)
Requirement already satisfied: importlib-resources>=1.4.0; python_version < "3.9" in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (5.8.0)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (0.18.1)
Requirement already satisfied: entrypoints in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (0.4)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (2.8.2)
Requirement already satisfied: pyzmq>=23.0 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (23.2.0)
Requirement already satisfied: tornado>=6.0 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (6.1)
Requirement already satisfied: zipp>=3.1.0; python_version < "3.10" in /usr/local/lib/python3.8/dist-packages (from importlib-resources>=1.4.0; python_version < "3.9"->jsonschema>=2.6->nbformat>=5.0.4->testbook) (3.8.0)
Requirement already satisfied: six>=1.5 in /var/jenkins_home/.local/lib/python3.8/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (1.15.0)
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.2, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: anyio-3.6.1, xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 499 items / 2 skipped

tests/unit/config/test_schema.py .... [ 0%]
tests/unit/datasets/test_advertising.py .s [ 1%]
tests/unit/datasets/test_ecommerce.py ..sss [ 2%]
tests/unit/datasets/test_entertainment.py ....sss. [ 3%]
tests/unit/datasets/test_social.py . [ 4%]
tests/unit/datasets/test_synthetic.py ..... [ 5%]
tests/unit/tf/test_core.py ...... [ 6%]
tests/unit/tf/test_dataset.py ................ [ 9%]
tests/unit/tf/test_public_api.py . [ 9%]
tests/unit/tf/blocks/test_cross.py ........... [ 11%]
tests/unit/tf/blocks/test_dlrm.py ........ [ 13%]
tests/unit/tf/blocks/test_interactions.py . [ 13%]
tests/unit/tf/blocks/test_mlp.py ................................. [ 20%]
tests/unit/tf/blocks/retrieval/test_matrix_factorization.py .. [ 20%]
tests/unit/tf/blocks/retrieval/test_two_tower.py ........... [ 22%]
tests/unit/tf/core/test_aggregation.py ......... [ 24%]
tests/unit/tf/core/test_base.py .. [ 25%]
tests/unit/tf/core/test_combinators.py ............... [ 28%]
tests/unit/tf/core/test_index.py ... [ 28%]
tests/unit/tf/core/test_prediction.py .. [ 29%]
tests/unit/tf/core/test_tabular.py .... [ 29%]
tests/unit/tf/core/test_transformations.py s.................... [ 34%]
tests/unit/tf/data_augmentation/test_misc.py . [ 34%]
tests/unit/tf/data_augmentation/test_negative_sampling.py .......... [ 36%]
tests/unit/tf/data_augmentation/test_noise.py ..... [ 37%]
tests/unit/tf/examples/test_01_getting_started.py . [ 37%]
tests/unit/tf/examples/test_02_dataschema.py . [ 37%]
tests/unit/tf/examples/test_03_exploring_different_models.py . [ 37%]
tests/unit/tf/examples/test_04_export_ranking_models.py . [ 38%]
tests/unit/tf/examples/test_05_export_retrieval_model.py . [ 38%]
tests/unit/tf/examples/test_06_advanced_own_architecture.py . [ 38%]
tests/unit/tf/examples/test_usecase_pretrained_embeddings.py . [ 38%]
tests/unit/tf/inputs/test_continuous.py ..... [ 39%]
tests/unit/tf/inputs/test_embedding.py .......................... [ 44%]
tests/unit/tf/inputs/test_tabular.py ........... [ 47%]
tests/unit/tf/layers/test_queue.py .............. [ 49%]
tests/unit/tf/losses/test_losses.py ....................... [ 54%]
tests/unit/tf/metrics/test_metrics_popularity.py ..... [ 55%]
tests/unit/tf/metrics/test_metrics_topk.py .................. [ 59%]
tests/unit/tf/models/test_base.py ........... [ 61%]
tests/unit/tf/models/test_benchmark.py .. [ 61%]
tests/unit/tf/models/test_ranking.py ................ [ 64%]
tests/unit/tf/models/test_retrieval.py ............................... [ 71%]
tests/unit/tf/prediction_tasks/test_classification.py .. [ 71%]
tests/unit/tf/prediction_tasks/test_multi_task.py ....... [ 72%]
tests/unit/tf/prediction_tasks/test_next_item.py ..... [ 73%]
tests/unit/tf/prediction_tasks/test_regression.py .. [ 74%]
tests/unit/tf/prediction_tasks/test_sampling.py ...... [ 75%]
tests/unit/tf/utils/test_batch.py .... [ 76%]
tests/unit/tf/utils/test_tf_utils.py .. [ 76%]
tests/unit/torch/test_dataset.py ......... [ 78%]
tests/unit/torch/test_public_api.py . [ 78%]
tests/unit/torch/block/test_base.py .... [ 79%]
tests/unit/torch/block/test_mlp.py . [ 79%]
tests/unit/torch/features/test_continuous.py .. [ 80%]
tests/unit/torch/features/test_embedding.py .............. [ 82%]
tests/unit/torch/features/test_tabular.py .... [ 83%]
tests/unit/torch/model/test_head.py ............ [ 86%]
tests/unit/torch/model/test_model.py .. [ 86%]
tests/unit/torch/tabular/test_aggregation.py ........ [ 88%]
tests/unit/torch/tabular/test_tabular.py ... [ 88%]
tests/unit/torch/tabular/test_transformations.py ....... [ 90%]
tests/unit/utils/test_schema_utils.py ................................ [ 96%]
tests/unit/xgb/test_xgboost.py ................. [100%]

=============================== warnings summary ===============================
../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:36
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:36: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
'nearest': pil_image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:37
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:37: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
'bilinear': pil_image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:38
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:38: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
'bicubic': pil_image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:39
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:39: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
'hamming': pil_image.HAMMING,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:40
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:40: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
'box': pil_image.BOX,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:41
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:41: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
'lanczos': pil_image.LANCZOS,

tests/unit/datasets/test_ecommerce.py::test_synthetic_aliccp_raw_data
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-True-10]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-True-9]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-True-8]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-False-10]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-False-9]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-False-8]
tests/unit/tf/test_dataset.py::test_tf_catname_ordering
tests/unit/tf/test_dataset.py::test_tf_map
/usr/local/lib/python3.8/dist-packages/cudf/core/frame.py:384: UserWarning: The deep parameter is ignored and is only included for pandas compatibility.
warnings.warn(

tests/unit/tf/blocks/retrieval/test_matrix_factorization.py::test_matrix_factorization_embedding_export
tests/unit/tf/blocks/retrieval/test_matrix_factorization.py::test_matrix_factorization_embedding_export
tests/unit/tf/blocks/retrieval/test_two_tower.py::test_matrix_factorization_embedding_export
tests/unit/tf/blocks/retrieval/test_two_tower.py::test_matrix_factorization_embedding_export
tests/unit/tf/inputs/test_embedding.py::test_embedding_features_exporting_and_loading_pretrained_initializer
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py:751: DeprecationWarning: This function is deprecated in favor of cupy.from_dlpack
embeddings_cupy = cupy.fromDlpack(to_dlpack(tf.convert_to_tensor(embeddings)))

tests/unit/tf/core/test_index.py: 4 warnings
tests/unit/tf/models/test_retrieval.py: 53 warnings
tests/unit/tf/prediction_tasks/test_next_item.py: 3 warnings
tests/unit/tf/utils/test_batch.py: 2 warnings
/tmp/autograph_generated_filekctt59bw.py:8: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
ag
.converted_call(ag__.ld(warnings).warn, ("The 'warn' method is deprecated, use 'warning' instead", ag__.ld(DeprecationWarning), 2), None, fscope)

tests/unit/tf/data_augmentation/test_noise.py: 4 warnings
tests/unit/tf/models/test_base.py: 8 warnings
/usr/local/lib/python3.8/dist-packages/tensorflow/python/util/dispatch.py:1082: UserWarning: tf.keras.backend.random_binomial is deprecated, and will be removed in a future version.Please use tf.keras.backend.random_bernoulli instead.
return dispatch_target(*args, **kwargs)

tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[True]
tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[True]
tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[False]
tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[False]
/usr/local/lib/python3.8/dist-packages/numpy/core/numeric.py:2446: DeprecationWarning: elementwise comparison failed; this will raise an error in the future.
return bool(asarray(a1 == a2).all())

tests/unit/torch/block/test_mlp.py::test_mlp_block
/var/jenkins_home/workspace/merlin_models/models/tests/unit/torch/_conftest.py:151: UserWarning: Creating a tensor from a list of numpy.ndarrays is extremely slow. Please consider converting the list to a single numpy.ndarray with numpy.array() before converting to a tensor. (Triggered internally at ../torch/csrc/utils/tensor_new.cpp:201.)
return {key: torch.tensor(value) for key, value in data.items()}

tests/unit/xgb/test_xgboost.py::test_without_dask_client
tests/unit/xgb/test_xgboost.py::TestXGBoost::test_music_regression
tests/unit/xgb/test_xgboost.py::test_gpu_hist_dmatrix[fit_kwargs0-DaskDeviceQuantileDMatrix]
tests/unit/xgb/test_xgboost.py::test_gpu_hist_dmatrix[fit_kwargs1-DaskDMatrix]
tests/unit/xgb/test_xgboost.py::TestEvals::test_multiple
tests/unit/xgb/test_xgboost.py::TestEvals::test_default
tests/unit/xgb/test_xgboost.py::TestEvals::test_train_and_valid
tests/unit/xgb/test_xgboost.py::TestEvals::test_invalid_data
/var/jenkins_home/workspace/merlin_models/models/merlin/models/xgb/init.py:266: UserWarning: Ignoring list columns as inputs to XGBoost model: ['item_genres', 'user_genres'].
warnings.warn(f"Ignoring list columns as inputs to XGBoost model: {list_column_names}.")

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
SKIPPED [1] tests/unit/implicit/init.py:18: could not import 'implicit': No module named 'implicit'
SKIPPED [1] tests/unit/lightfm/init.py:18: could not import 'lightfm': No module named 'lightfm'
SKIPPED [1] tests/unit/datasets/test_advertising.py:20: No data-dir available, pass it through env variable $INPUT_DATA_DIR
SKIPPED [1] tests/unit/datasets/test_ecommerce.py:62: ALI-CCP data is not available, pass it through env variable $DATA_PATH_ALICCP
SKIPPED [1] tests/unit/datasets/test_ecommerce.py:78: ALI-CCP data is not available, pass it through env variable $DATA_PATH_ALICCP
SKIPPED [1] tests/unit/datasets/test_ecommerce.py:92: ALI-CCP data is not available, pass it through env variable $DATA_PATH_ALICCP
SKIPPED [3] tests/unit/datasets/test_entertainment.py:44: No data-dir available, pass it through env variable $INPUT_DATA_DIR
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/tensorflow/python/framework/test_util.py:2746: Not a test.
========== 491 passed, 10 skipped, 107 warnings in 1734.98s (0:28:54) ==========
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/models/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log"
[merlin_models] $ /bin/bash /tmp/jenkins14724474420304635585.sh

Apply classes renaming suggested by @marcromeyn

Co-authored-by: Marc Romeyn <marcromeyn@gmail.com>
@marcromeyn marcromeyn self-requested a review July 20, 2022 12:25
@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #593 of commit 5212307036e6db6b5afaa74b8afc36d31ec8f461, no merge conflicts.
Running as SYSTEM
Setting status of 5212307036e6db6b5afaa74b8afc36d31ec8f461 to PENDING with url https://10.20.13.93:8080/job/merlin_models/760/console and message: 'Pending'
Using context: Jenkins
Building on master in workspace /var/jenkins_home/workspace/merlin_models
using credential nvidia-merlin-bot
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/models/ # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/models/
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/models/ +refs/pull/593/*:refs/remotes/origin/pr/593/* # timeout=10
 > git rev-parse 5212307036e6db6b5afaa74b8afc36d31ec8f461^{commit} # timeout=10
Checking out Revision 5212307036e6db6b5afaa74b8afc36d31ec8f461 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 5212307036e6db6b5afaa74b8afc36d31ec8f461 # timeout=10
Commit message: "Apply suggestions from code review"
 > git rev-list --no-walk 07911209e5e0836ec266740304058ae9176c7b40 # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins3536002096638362811.sh
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: testbook in /usr/local/lib/python3.8/dist-packages (0.4.2)
Requirement already satisfied: nbformat>=5.0.4 in /usr/local/lib/python3.8/dist-packages (from testbook) (5.4.0)
Requirement already satisfied: nbclient>=0.4.0 in /usr/local/lib/python3.8/dist-packages (from testbook) (0.6.5)
Requirement already satisfied: traitlets>=5.1 in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (5.3.0)
Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (4.6.1)
Requirement already satisfied: jupyter-core in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (4.10.0)
Requirement already satisfied: fastjsonschema in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (2.15.3)
Requirement already satisfied: jupyter-client>=6.1.5 in /usr/local/lib/python3.8/dist-packages (from nbclient>=0.4.0->testbook) (7.3.4)
Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.8/dist-packages (from nbclient>=0.4.0->testbook) (1.5.5)
Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (21.4.0)
Requirement already satisfied: importlib-resources>=1.4.0; python_version < "3.9" in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (5.8.0)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (0.18.1)
Requirement already satisfied: entrypoints in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (0.4)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (2.8.2)
Requirement already satisfied: pyzmq>=23.0 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (23.2.0)
Requirement already satisfied: tornado>=6.0 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (6.1)
Requirement already satisfied: zipp>=3.1.0; python_version < "3.10" in /usr/local/lib/python3.8/dist-packages (from importlib-resources>=1.4.0; python_version < "3.9"->jsonschema>=2.6->nbformat>=5.0.4->testbook) (3.8.0)
Requirement already satisfied: six>=1.5 in /var/jenkins_home/.local/lib/python3.8/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (1.15.0)
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.2, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: anyio-3.6.1, xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 150 items / 36 errors / 2 skipped

==================================== ERRORS ====================================
_________________ ERROR collecting tests/unit/tf/test_core.py __________________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/test_core.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/test_core.py:4: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
________________ ERROR collecting tests/unit/tf/test_dataset.py ________________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/test_dataset.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/test_dataset.py:26: in
import merlin.models.tf as mm
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
______________ ERROR collecting tests/unit/tf/test_public_api.py _______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/test_public_api.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/test_public_api.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
_____________ ERROR collecting tests/unit/tf/blocks/test_cross.py ______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/blocks/test_cross.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/blocks/test_cross.py:20: in
import merlin.models.tf as mm
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
______________ ERROR collecting tests/unit/tf/blocks/test_dlrm.py ______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/blocks/test_dlrm.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/blocks/test_dlrm.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
__________ ERROR collecting tests/unit/tf/blocks/test_interactions.py __________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/blocks/test_interactions.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/blocks/test_interactions.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
______________ ERROR collecting tests/unit/tf/blocks/test_mlp.py _______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/blocks/test_mlp.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/blocks/test_mlp.py:21: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
_ ERROR collecting tests/unit/tf/blocks/retrieval/test_matrix_factorization.py _
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/blocks/retrieval/test_matrix_factorization.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/blocks/retrieval/test_matrix_factorization.py:20: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
______ ERROR collecting tests/unit/tf/blocks/retrieval/test_two_tower.py _______
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/blocks/retrieval/test_two_tower.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/blocks/retrieval/test_two_tower.py:22: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
___________ ERROR collecting tests/unit/tf/core/test_aggregation.py ____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/core/test_aggregation.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/core/test_aggregation.py:21: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
_______________ ERROR collecting tests/unit/tf/core/test_base.py _______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/core/test_base.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/core/test_base.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
___________ ERROR collecting tests/unit/tf/core/test_combinators.py ____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/core/test_combinators.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/core/test_combinators.py:5: in
import merlin.models.tf as mm
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
______________ ERROR collecting tests/unit/tf/core/test_index.py _______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/core/test_index.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/core/test_index.py:19: in
import merlin.models.tf as mm
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
____________ ERROR collecting tests/unit/tf/core/test_prediction.py ____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/core/test_prediction.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/core/test_prediction.py:7: in
import merlin.models.tf as mm
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
_____________ ERROR collecting tests/unit/tf/core/test_tabular.py ______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/core/test_tabular.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/core/test_tabular.py:1: in
import merlin.models.tf as mm
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
_________ ERROR collecting tests/unit/tf/core/test_transformations.py __________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/core/test_transformations.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/core/test_transformations.py:23: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
________ ERROR collecting tests/unit/tf/data_augmentation/test_misc.py _________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/data_augmentation/test_misc.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/data_augmentation/test_misc.py:19: in
from merlin.models.tf.data_augmentation.misc import ContinuousPowers
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
__ ERROR collecting tests/unit/tf/data_augmentation/test_negative_sampling.py __
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/data_augmentation/test_negative_sampling.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/data_augmentation/test_negative_sampling.py:21: in
import merlin.models.tf as mm
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
________ ERROR collecting tests/unit/tf/data_augmentation/test_noise.py ________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/data_augmentation/test_noise.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/data_augmentation/test_noise.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
___________ ERROR collecting tests/unit/tf/inputs/test_continuous.py ___________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/inputs/test_continuous.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/inputs/test_continuous.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
___________ ERROR collecting tests/unit/tf/inputs/test_embedding.py ____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/inputs/test_embedding.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/inputs/test_embedding.py:23: in
import merlin.models.tf as mm
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
____________ ERROR collecting tests/unit/tf/inputs/test_tabular.py _____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/inputs/test_tabular.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/inputs/test_tabular.py:21: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
_____________ ERROR collecting tests/unit/tf/layers/test_queue.py ______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/layers/test_queue.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/layers/test_queue.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
_____________ ERROR collecting tests/unit/tf/losses/test_losses.py _____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/losses/test_losses.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/losses/test_losses.py:20: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
______ ERROR collecting tests/unit/tf/metrics/test_metrics_popularity.py _______
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/metrics/test_metrics_popularity.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/metrics/test_metrics_popularity.py:20: in
from merlin.models.tf.metrics.evaluation import ItemCoverageAt, NoveltyAt, PopularityBiasAt
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
_________ ERROR collecting tests/unit/tf/metrics/test_metrics_topk.py __________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/metrics/test_metrics_topk.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/metrics/test_metrics_topk.py:23: in
from merlin.models.tf.metrics.topk import (
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
______________ ERROR collecting tests/unit/tf/models/test_base.py ______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/models/test_base.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/models/test_base.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
___________ ERROR collecting tests/unit/tf/models/test_benchmark.py ____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/models/test_benchmark.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/models/test_benchmark.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
____________ ERROR collecting tests/unit/tf/models/test_ranking.py _____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/models/test_ranking.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/models/test_ranking.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
___________ ERROR collecting tests/unit/tf/models/test_retrieval.py ____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/models/test_retrieval.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/models/test_retrieval.py:4: in
import merlin.models.tf as mm
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
____ ERROR collecting tests/unit/tf/prediction_tasks/test_classification.py ____
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/prediction_tasks/test_classification.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/prediction_tasks/test_classification.py:18: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
______ ERROR collecting tests/unit/tf/prediction_tasks/test_multi_task.py ______
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/prediction_tasks/test_multi_task.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/prediction_tasks/test_multi_task.py:3: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
______ ERROR collecting tests/unit/tf/prediction_tasks/test_next_item.py _______
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/prediction_tasks/test_next_item.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/prediction_tasks/test_next_item.py:20: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
______ ERROR collecting tests/unit/tf/prediction_tasks/test_regression.py ______
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/prediction_tasks/test_regression.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/prediction_tasks/test_regression.py:18: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
_______ ERROR collecting tests/unit/tf/prediction_tasks/test_sampling.py _______
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/prediction_tasks/test_sampling.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/prediction_tasks/test_sampling.py:20: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
______________ ERROR collecting tests/unit/tf/utils/test_batch.py ______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/unit/tf/utils/test_batch.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.8/importlib/init.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
tests/unit/tf/utils/test_batch.py:4: in
import merlin.models.tf as ml
merlin/models/tf/init.py:21: in
from merlin.models.tf.core.index import IndexBlock, TopKIndexBlock
merlin/models/tf/core/index.py:26: in
from merlin.models.tf.utils.batch_utils import TFModelEncode
merlin/models/tf/utils/batch_utils.py:10: in
from merlin.models.tf.models.base import Model, RetrievalModel
merlin/models/tf/models/base.py:21: in
from merlin.models.tf.inputs.base import InputBlock
merlin/models/tf/inputs/base.py:30: in
from merlin.models.tf.inputs.embedding import (
E ImportError: cannot import name 'EmbeddingsFromSchema' from 'merlin.models.tf.inputs.embedding' (/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py)
=============================== warnings summary ===============================
../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:36
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:36: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
'nearest': pil_image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:37
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:37: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
'bilinear': pil_image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:38
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:38: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
'bicubic': pil_image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:39
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:39: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
'hamming': pil_image.HAMMING,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:40
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:40: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
'box': pil_image.BOX,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:41
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:41: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
'lanczos': pil_image.LANCZOS,

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
SKIPPED [1] tests/unit/implicit/init.py:18: could not import 'implicit': No module named 'implicit'
SKIPPED [1] tests/unit/lightfm/init.py:18: could not import 'lightfm': No module named 'lightfm'
!!!!!!!!!!!!!!!!!!! Interrupted: 36 errors during collection !!!!!!!!!!!!!!!!!!!
================== 2 skipped, 6 warnings, 36 errors in 3.03s ===================
Build step 'Execute shell' marked build as failure
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/models/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log"
[merlin_models] $ /bin/bash /tmp/jenkins8808639543847345726.sh

@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #593 of commit 8ed069527b4322a63a038a60edc4b239815b49bc, no merge conflicts.
Running as SYSTEM
Setting status of 8ed069527b4322a63a038a60edc4b239815b49bc to PENDING with url https://10.20.13.93:8080/job/merlin_models/764/console and message: 'Pending'
Using context: Jenkins
Building on master in workspace /var/jenkins_home/workspace/merlin_models
using credential nvidia-merlin-bot
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/models/ # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/models/
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/models/ +refs/pull/593/*:refs/remotes/origin/pr/593/* # timeout=10
 > git rev-parse 8ed069527b4322a63a038a60edc4b239815b49bc^{commit} # timeout=10
Checking out Revision 8ed069527b4322a63a038a60edc4b239815b49bc (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 8ed069527b4322a63a038a60edc4b239815b49bc # timeout=10
Commit message: "Exposing EmbeddingTable kwargs in Embeddings and fixed tests"
 > git rev-list --no-walk 440e1dfb404acc4cc77ec2696f1e50f0b4daabb9 # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins16148962659745911063.sh
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: testbook in /usr/local/lib/python3.8/dist-packages (0.4.2)
Requirement already satisfied: nbformat>=5.0.4 in /usr/local/lib/python3.8/dist-packages (from testbook) (5.4.0)
Requirement already satisfied: nbclient>=0.4.0 in /usr/local/lib/python3.8/dist-packages (from testbook) (0.6.5)
Requirement already satisfied: traitlets>=5.1 in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (5.3.0)
Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (4.6.1)
Requirement already satisfied: jupyter-core in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (4.10.0)
Requirement already satisfied: fastjsonschema in /usr/local/lib/python3.8/dist-packages (from nbformat>=5.0.4->testbook) (2.15.3)
Requirement already satisfied: jupyter-client>=6.1.5 in /usr/local/lib/python3.8/dist-packages (from nbclient>=0.4.0->testbook) (7.3.4)
Requirement already satisfied: nest-asyncio in /usr/local/lib/python3.8/dist-packages (from nbclient>=0.4.0->testbook) (1.5.5)
Requirement already satisfied: attrs>=17.4.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (21.4.0)
Requirement already satisfied: importlib-resources>=1.4.0; python_version < "3.9" in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (5.8.0)
Requirement already satisfied: pyrsistent!=0.17.0,!=0.17.1,!=0.17.2,>=0.14.0 in /usr/local/lib/python3.8/dist-packages (from jsonschema>=2.6->nbformat>=5.0.4->testbook) (0.18.1)
Requirement already satisfied: entrypoints in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (0.4)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (2.8.2)
Requirement already satisfied: pyzmq>=23.0 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (23.2.0)
Requirement already satisfied: tornado>=6.0 in /usr/local/lib/python3.8/dist-packages (from jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (6.1)
Requirement already satisfied: zipp>=3.1.0; python_version < "3.10" in /usr/local/lib/python3.8/dist-packages (from importlib-resources>=1.4.0; python_version < "3.9"->jsonschema>=2.6->nbformat>=5.0.4->testbook) (3.8.0)
Requirement already satisfied: six>=1.5 in /var/jenkins_home/.local/lib/python3.8/site-packages (from python-dateutil>=2.8.2->jupyter-client>=6.1.5->nbclient>=0.4.0->testbook) (1.15.0)
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.2, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: anyio-3.6.1, xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 499 items / 2 skipped

tests/unit/config/test_schema.py .... [ 0%]
tests/unit/datasets/test_advertising.py .s [ 1%]
tests/unit/datasets/test_ecommerce.py ..sss [ 2%]
tests/unit/datasets/test_entertainment.py ....sss. [ 3%]
tests/unit/datasets/test_social.py . [ 4%]
tests/unit/datasets/test_synthetic.py ..... [ 5%]
tests/unit/tf/test_core.py ...... [ 6%]
tests/unit/tf/test_dataset.py ................ [ 9%]
tests/unit/tf/test_public_api.py . [ 9%]
tests/unit/tf/blocks/test_cross.py ........... [ 11%]
tests/unit/tf/blocks/test_dlrm.py ........ [ 13%]
tests/unit/tf/blocks/test_interactions.py . [ 13%]
tests/unit/tf/blocks/test_mlp.py ................................. [ 20%]
tests/unit/tf/blocks/retrieval/test_matrix_factorization.py .. [ 20%]
tests/unit/tf/blocks/retrieval/test_two_tower.py ........... [ 22%]
tests/unit/tf/core/test_aggregation.py ......... [ 24%]
tests/unit/tf/core/test_base.py .. [ 25%]
tests/unit/tf/core/test_combinators.py ............... [ 28%]
tests/unit/tf/core/test_index.py ... [ 28%]
tests/unit/tf/core/test_prediction.py .. [ 29%]
tests/unit/tf/core/test_tabular.py .... [ 29%]
tests/unit/tf/core/test_transformations.py s.................... [ 34%]
tests/unit/tf/data_augmentation/test_misc.py . [ 34%]
tests/unit/tf/data_augmentation/test_negative_sampling.py .......... [ 36%]
tests/unit/tf/data_augmentation/test_noise.py ..... [ 37%]
tests/unit/tf/examples/test_01_getting_started.py . [ 37%]
tests/unit/tf/examples/test_02_dataschema.py . [ 37%]
tests/unit/tf/examples/test_03_exploring_different_models.py . [ 37%]
tests/unit/tf/examples/test_04_export_ranking_models.py . [ 38%]
tests/unit/tf/examples/test_05_export_retrieval_model.py . [ 38%]
tests/unit/tf/examples/test_06_advanced_own_architecture.py . [ 38%]
tests/unit/tf/examples/test_usecase_pretrained_embeddings.py . [ 38%]
tests/unit/tf/inputs/test_continuous.py ..... [ 39%]
tests/unit/tf/inputs/test_embedding.py .......................... [ 44%]
tests/unit/tf/inputs/test_tabular.py ........... [ 47%]
tests/unit/tf/layers/test_queue.py .............. [ 49%]
tests/unit/tf/losses/test_losses.py ....................... [ 54%]
tests/unit/tf/metrics/test_metrics_popularity.py ..... [ 55%]
tests/unit/tf/metrics/test_metrics_topk.py .................. [ 59%]
tests/unit/tf/models/test_base.py ........... [ 61%]
tests/unit/tf/models/test_benchmark.py .. [ 61%]
tests/unit/tf/models/test_ranking.py ................ [ 64%]
tests/unit/tf/models/test_retrieval.py ............................... [ 71%]
tests/unit/tf/prediction_tasks/test_classification.py .. [ 71%]
tests/unit/tf/prediction_tasks/test_multi_task.py ....... [ 72%]
tests/unit/tf/prediction_tasks/test_next_item.py ..... [ 73%]
tests/unit/tf/prediction_tasks/test_regression.py .. [ 74%]
tests/unit/tf/prediction_tasks/test_sampling.py ...... [ 75%]
tests/unit/tf/utils/test_batch.py .... [ 76%]
tests/unit/tf/utils/test_tf_utils.py .. [ 76%]
tests/unit/torch/test_dataset.py ......... [ 78%]
tests/unit/torch/test_public_api.py . [ 78%]
tests/unit/torch/block/test_base.py .... [ 79%]
tests/unit/torch/block/test_mlp.py . [ 79%]
tests/unit/torch/features/test_continuous.py .. [ 80%]
tests/unit/torch/features/test_embedding.py .............. [ 82%]
tests/unit/torch/features/test_tabular.py .... [ 83%]
tests/unit/torch/model/test_head.py ............ [ 86%]
tests/unit/torch/model/test_model.py .. [ 86%]
tests/unit/torch/tabular/test_aggregation.py ........ [ 88%]
tests/unit/torch/tabular/test_tabular.py ... [ 88%]
tests/unit/torch/tabular/test_transformations.py ....... [ 90%]
tests/unit/utils/test_schema_utils.py ................................ [ 96%]
tests/unit/xgb/test_xgboost.py ................. [100%]

=============================== warnings summary ===============================
../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:36
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:36: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
'nearest': pil_image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:37
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:37: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
'bilinear': pil_image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:38
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:38: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
'bicubic': pil_image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:39
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:39: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
'hamming': pil_image.HAMMING,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:40
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:40: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
'box': pil_image.BOX,

../../../../../usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:41
/usr/local/lib/python3.8/dist-packages/keras/utils/image_utils.py:41: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
'lanczos': pil_image.LANCZOS,

tests/unit/datasets/test_ecommerce.py::test_synthetic_aliccp_raw_data
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-True-10]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-True-9]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-True-8]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-False-10]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-False-9]
tests/unit/tf/test_dataset.py::test_tf_drp_reset[100-False-8]
tests/unit/tf/test_dataset.py::test_tf_catname_ordering
tests/unit/tf/test_dataset.py::test_tf_map
/usr/local/lib/python3.8/dist-packages/cudf/core/frame.py:384: UserWarning: The deep parameter is ignored and is only included for pandas compatibility.
warnings.warn(

tests/unit/tf/blocks/retrieval/test_matrix_factorization.py::test_matrix_factorization_embedding_export
tests/unit/tf/blocks/retrieval/test_matrix_factorization.py::test_matrix_factorization_embedding_export
tests/unit/tf/blocks/retrieval/test_two_tower.py::test_matrix_factorization_embedding_export
tests/unit/tf/blocks/retrieval/test_two_tower.py::test_matrix_factorization_embedding_export
tests/unit/tf/inputs/test_embedding.py::test_embedding_features_exporting_and_loading_pretrained_initializer
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/inputs/embedding.py:752: DeprecationWarning: This function is deprecated in favor of cupy.from_dlpack
embeddings_cupy = cupy.fromDlpack(to_dlpack(tf.convert_to_tensor(embeddings)))

tests/unit/tf/core/test_index.py: 4 warnings
tests/unit/tf/models/test_retrieval.py: 53 warnings
tests/unit/tf/prediction_tasks/test_next_item.py: 3 warnings
tests/unit/tf/utils/test_batch.py: 2 warnings
/tmp/autograph_generated_filegonwpeyr.py:8: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
ag
.converted_call(ag__.ld(warnings).warn, ("The 'warn' method is deprecated, use 'warning' instead", ag__.ld(DeprecationWarning), 2), None, fscope)

tests/unit/tf/data_augmentation/test_noise.py: 4 warnings
tests/unit/tf/models/test_base.py: 8 warnings
/usr/local/lib/python3.8/dist-packages/tensorflow/python/util/dispatch.py:1082: UserWarning: tf.keras.backend.random_binomial is deprecated, and will be removed in a future version.Please use tf.keras.backend.random_bernoulli instead.
return dispatch_target(*args, **kwargs)

tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[True]
tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[True]
tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[False]
tests/unit/tf/models/test_ranking.py::test_dlrm_model_multi_task[False]
/usr/local/lib/python3.8/dist-packages/numpy/core/numeric.py:2446: DeprecationWarning: elementwise comparison failed; this will raise an error in the future.
return bool(asarray(a1 == a2).all())

tests/unit/torch/block/test_mlp.py::test_mlp_block
/var/jenkins_home/workspace/merlin_models/models/tests/unit/torch/_conftest.py:151: UserWarning: Creating a tensor from a list of numpy.ndarrays is extremely slow. Please consider converting the list to a single numpy.ndarray with numpy.array() before converting to a tensor. (Triggered internally at ../torch/csrc/utils/tensor_new.cpp:201.)
return {key: torch.tensor(value) for key, value in data.items()}

tests/unit/xgb/test_xgboost.py::test_without_dask_client
tests/unit/xgb/test_xgboost.py::TestXGBoost::test_music_regression
tests/unit/xgb/test_xgboost.py::test_gpu_hist_dmatrix[fit_kwargs0-DaskDeviceQuantileDMatrix]
tests/unit/xgb/test_xgboost.py::test_gpu_hist_dmatrix[fit_kwargs1-DaskDMatrix]
tests/unit/xgb/test_xgboost.py::TestEvals::test_multiple
tests/unit/xgb/test_xgboost.py::TestEvals::test_default
tests/unit/xgb/test_xgboost.py::TestEvals::test_train_and_valid
tests/unit/xgb/test_xgboost.py::TestEvals::test_invalid_data
/var/jenkins_home/workspace/merlin_models/models/merlin/models/xgb/init.py:266: UserWarning: Ignoring list columns as inputs to XGBoost model: ['item_genres', 'user_genres'].
warnings.warn(f"Ignoring list columns as inputs to XGBoost model: {list_column_names}.")

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
SKIPPED [1] tests/unit/implicit/init.py:18: could not import 'implicit': No module named 'implicit'
SKIPPED [1] tests/unit/lightfm/init.py:18: could not import 'lightfm': No module named 'lightfm'
SKIPPED [1] tests/unit/datasets/test_advertising.py:20: No data-dir available, pass it through env variable $INPUT_DATA_DIR
SKIPPED [1] tests/unit/datasets/test_ecommerce.py:62: ALI-CCP data is not available, pass it through env variable $DATA_PATH_ALICCP
SKIPPED [1] tests/unit/datasets/test_ecommerce.py:78: ALI-CCP data is not available, pass it through env variable $DATA_PATH_ALICCP
SKIPPED [1] tests/unit/datasets/test_ecommerce.py:92: ALI-CCP data is not available, pass it through env variable $DATA_PATH_ALICCP
SKIPPED [3] tests/unit/datasets/test_entertainment.py:44: No data-dir available, pass it through env variable $INPUT_DATA_DIR
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/tensorflow/python/framework/test_util.py:2746: Not a test.
========== 491 passed, 10 skipped, 107 warnings in 1724.77s (0:28:44) ==========
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/models/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log"
[merlin_models] $ /bin/bash /tmp/jenkins16545974799084077782.sh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/api enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Decouple InputBlock - Create InferEmbeddings Decouple InputBlock - Create new InputBlock
3 participants