Skip to content

Adding better doc-strings for retrieval & ranking models#297

Closed
marcromeyn wants to merge 6 commits intomainfrom
docs-strings
Closed

Adding better doc-strings for retrieval & ranking models#297
marcromeyn wants to merge 6 commits intomainfrom
docs-strings

Conversation

@marcromeyn
Copy link
Contributor

Fixes # (issue)

Goals ⚽

Implementation Details 🚧

Testing Details 🔍

@benfred
Copy link
Member

benfred commented Apr 1, 2022

@marcromeyn can we get this updated for the release on tuesday?

@viswa-nvidia viswa-nvidia linked an issue Apr 1, 2022 that may be closed by this pull request
@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #297 of commit de75b4887ffd302256b7e08272a7a4f8e9dcf386, no merge conflicts.
Running as SYSTEM
Setting status of de75b4887ffd302256b7e08272a7a4f8e9dcf386 to PENDING with url https://10.20.13.93:8080/job/merlin_models/23/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/297/*:refs/remotes/origin/pr/297/* # timeout=10
 > git rev-parse de75b4887ffd302256b7e08272a7a4f8e9dcf386^{commit} # timeout=10
Checking out Revision de75b4887ffd302256b7e08272a7a4f8e9dcf386 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f de75b4887ffd302256b7e08272a7a4f8e9dcf386 # timeout=10
Commit message: "Adding some TODOs in doc-strings for the different models"
 > git rev-list --no-walk 059143e1436ed85cd7079bd5c2df46d5854bb256 # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins453863342514889078.sh
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.1, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 356 items / 2 skipped

tests/data/test_synthetic.py .. [ 0%]
tests/data/testing/test_dataset.py ..... [ 1%]
tests/tf/test_core.py ................ [ 6%]
tests/tf/test_dataset.py .............. [ 10%]
tests/tf/test_public_api.py . [ 10%]
tests/tf/blocks/test_cross.py ............ [ 14%]
tests/tf/blocks/test_dlrm.py ........ [ 16%]
tests/tf/blocks/test_interactions.py . [ 16%]
tests/tf/blocks/test_mlp.py ............................. [ 24%]
tests/tf/blocks/core/test_aggregation.py ......... [ 27%]
tests/tf/blocks/core/test_base.py . [ 27%]
tests/tf/blocks/core/test_index.py .. [ 28%]
tests/tf/blocks/core/test_masking.py ....... [ 30%]
tests/tf/blocks/core/test_transformations.py ........ [ 32%]
tests/tf/blocks/retrieval/test_matrix_factorization.py .. [ 32%]
tests/tf/blocks/retrieval/test_two_tower.py .......... [ 35%]
tests/tf/features/test_continuous.py ..... [ 37%]
tests/tf/features/test_embedding.py ......... [ 39%]
tests/tf/features/test_tabular.py ....... [ 41%]
tests/tf/layers/test_queue.py .............. [ 45%]
tests/tf/losses/test_losses.py ....................... [ 51%]
tests/tf/metrics/test_metrics_ranking.py ................. [ 56%]
tests/tf/models/test_benchmark.py . [ 57%]
tests/tf/models/test_ranking.py ...................... [ 63%]
tests/tf/models/test_retrieval.py ......... [ 65%]
tests/tf/prediction/test_classification.py .. [ 66%]
tests/tf/prediction/test_multi_task.py ....... [ 68%]
tests/tf/prediction/test_next_item.py .................... [ 73%]
tests/tf/prediction/test_regression.py .. [ 74%]
tests/tf/prediction/test_sampling.py .................... [ 80%]
tests/tf/utils/test_batch.py .... [ 81%]
tests/torch/test_dataset.py ......... [ 83%]
tests/torch/test_public_api.py . [ 83%]
tests/torch/block/test_base.py .... [ 85%]
tests/torch/block/test_mlp.py . [ 85%]
tests/torch/features/test_continuous.py .. [ 85%]
tests/torch/features/test_embedding.py .............. [ 89%]
tests/torch/features/test_tabular.py .... [ 91%]
tests/torch/model/test_head.py ............ [ 94%]
tests/torch/model/test_model.py .. [ 94%]
tests/torch/tabular/test_aggregation.py ........ [ 97%]
tests/torch/tabular/test_tabular.py ... [ 98%]
tests/torch/tabular/test_transformations.py ....... [100%]

=============================== warnings summary ===============================
../../../.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22
/var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp

../../../../../usr/lib/python3/dist-packages/requests/init.py:89
/usr/lib/python3/dist-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11
/usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11: UserWarning: Failed to load image Python extension: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
warn(f"Failed to load image Python extension: {e}")

merlin/models/tf/models/base.py:1
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/models/base.py:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
from collections import Sequence as SequenceCollection

tests/tf/test_dataset.py::test_tf_drp_reset[100-True-10]
tests/tf/test_dataset.py::test_tf_drp_reset[100-True-9]
tests/tf/test_dataset.py::test_tf_drp_reset[100-True-8]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-10]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-9]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-8]
tests/tf/test_dataset.py::test_tf_catname_ordering
tests/tf/test_dataset.py::test_tf_map
/usr/lib/python3.8/site-packages/cudf/core/dataframe.py:1253: UserWarning: The deep parameter is ignored and is only included for pandas compatibility.
warnings.warn(

tests/tf/blocks/core/test_index.py: 2 warnings
tests/tf/models/test_retrieval.py: 9 warnings
tests/tf/prediction/test_next_item.py: 43 warnings
tests/tf/utils/test_batch.py: 2 warnings
/tmp/tmpy9vvbc2t.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/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.1]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.3]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.5]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.7]
/var/jenkins_home/.local/lib/python3.8/site-packages/keras/backend.py:6089: UserWarning: tf.keras.backend.random_binomial is deprecated, and will be removed in a future version.Please use tf.keras.backend.random_bernoulli instead.
warnings.warn('tf.keras.backend.random_binomial is deprecated, '

tests/torch/block/test_mlp.py::test_mlp_block
/var/jenkins_home/workspace/merlin_models/models/merlin/models/data/synthetic.py:154: 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).to(self.device) for key, value in data.items()}

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========== 356 passed, 2 skipped, 73 warnings in 428.98s (0:07:08) ============
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/jenkins6700467008440769974.sh

@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #297 of commit b81dc4f60caa2abf34499a46e2a66b4befaec0b1, no merge conflicts.
Running as SYSTEM
Setting status of b81dc4f60caa2abf34499a46e2a66b4befaec0b1 to PENDING with url https://10.20.13.93:8080/job/merlin_models/26/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/297/*:refs/remotes/origin/pr/297/* # timeout=10
 > git rev-parse b81dc4f60caa2abf34499a46e2a66b4befaec0b1^{commit} # timeout=10
Checking out Revision b81dc4f60caa2abf34499a46e2a66b4befaec0b1 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f b81dc4f60caa2abf34499a46e2a66b4befaec0b1 # timeout=10
Commit message: "Merge branch 'main' into docs-strings"
 > git rev-list --no-walk 61eb2d16c42e7e8329b34c98a610648a277fa999 # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins4791854731430907704.sh
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.1, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 372 items / 2 skipped

tests/data/test_advertising.py .s [ 0%]
tests/data/test_ecommerce.py ..sss [ 1%]
tests/data/test_entertainment.py ....sss [ 3%]
tests/data/test_social.py . [ 4%]
tests/data/test_synthetic.py .... [ 5%]
tests/tf/test_core.py ................ [ 9%]
tests/tf/test_dataset.py .............. [ 13%]
tests/tf/test_public_api.py . [ 13%]
tests/tf/blocks/test_cross.py ............ [ 16%]
tests/tf/blocks/test_dlrm.py ........ [ 18%]
tests/tf/blocks/test_interactions.py . [ 19%]
tests/tf/blocks/test_mlp.py ............................. [ 26%]
tests/tf/blocks/core/test_aggregation.py ......... [ 29%]
tests/tf/blocks/core/test_base.py . [ 29%]
tests/tf/blocks/core/test_index.py .. [ 30%]
tests/tf/blocks/core/test_masking.py ....... [ 31%]
tests/tf/blocks/core/test_transformations.py ........ [ 34%]
tests/tf/blocks/retrieval/test_matrix_factorization.py .. [ 34%]
tests/tf/blocks/retrieval/test_two_tower.py .......... [ 37%]
tests/tf/features/test_continuous.py ..... [ 38%]
tests/tf/features/test_embedding.py ......... [ 41%]
tests/tf/features/test_tabular.py ....... [ 43%]
tests/tf/layers/test_queue.py .............. [ 46%]
tests/tf/losses/test_losses.py ....................... [ 52%]
tests/tf/metrics/test_metrics_ranking.py ................. [ 57%]
tests/tf/models/test_benchmark.py . [ 57%]
tests/tf/models/test_ranking.py ...................... [ 63%]
tests/tf/models/test_retrieval.py ............. [ 67%]
tests/tf/prediction/test_classification.py .. [ 67%]
tests/tf/prediction/test_multi_task.py ....... [ 69%]
tests/tf/prediction/test_next_item.py .................... [ 75%]
tests/tf/prediction/test_regression.py .. [ 75%]
tests/tf/prediction/test_sampling.py .................... [ 80%]
tests/tf/utils/test_batch.py .... [ 81%]
tests/torch/test_dataset.py ......... [ 84%]
tests/torch/test_public_api.py . [ 84%]
tests/torch/block/test_base.py .... [ 85%]
tests/torch/block/test_mlp.py . [ 86%]
tests/torch/features/test_continuous.py .. [ 86%]
tests/torch/features/test_embedding.py .............. [ 90%]
tests/torch/features/test_tabular.py .... [ 91%]
tests/torch/model/test_head.py ............ [ 94%]
tests/torch/model/test_model.py .. [ 95%]
tests/torch/tabular/test_aggregation.py ........ [ 97%]
tests/torch/tabular/test_tabular.py ... [ 98%]
tests/torch/tabular/test_transformations.py ....... [100%]

=============================== warnings summary ===============================
../../../.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22
/var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23: 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_preprocessing/image/utils.py:24
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:24: 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_preprocessing/image/utils.py:25
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:25: 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_preprocessing/image/utils.py:28
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:28: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
if hasattr(pil_image, 'HAMMING'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
_PIL_INTERPOLATION_METHODS['hamming'] = pil_image.HAMMING

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
if hasattr(pil_image, 'BOX'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
_PIL_INTERPOLATION_METHODS['box'] = pil_image.BOX

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
if hasattr(pil_image, 'LANCZOS'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
_PIL_INTERPOLATION_METHODS['lanczos'] = pil_image.LANCZOS

../../../../../usr/lib/python3/dist-packages/requests/init.py:89
/usr/lib/python3/dist-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
interpolation: int = Image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
interpolation: int = Image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11
/usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11: UserWarning: Failed to load image Python extension: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
warn(f"Failed to load image Python extension: {e}")

merlin/models/tf/models/base.py:1
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/models/base.py:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
from collections import Sequence as SequenceCollection

tests/tf/test_dataset.py::test_tf_drp_reset[100-True-10]
tests/tf/test_dataset.py::test_tf_drp_reset[100-True-9]
tests/tf/test_dataset.py::test_tf_drp_reset[100-True-8]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-10]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-9]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-8]
tests/tf/test_dataset.py::test_tf_catname_ordering
tests/tf/test_dataset.py::test_tf_map
/usr/lib/python3.8/site-packages/cudf/core/dataframe.py:1253: UserWarning: The deep parameter is ignored and is only included for pandas compatibility.
warnings.warn(

tests/tf/blocks/core/test_index.py: 2 warnings
tests/tf/models/test_retrieval.py: 13 warnings
tests/tf/prediction/test_next_item.py: 43 warnings
tests/tf/utils/test_batch.py: 2 warnings
/tmp/tmp34gzeagk.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/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.1]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.3]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.5]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.7]
/var/jenkins_home/.local/lib/python3.8/site-packages/keras/backend.py:6089: UserWarning: tf.keras.backend.random_binomial is deprecated, and will be removed in a future version.Please use tf.keras.backend.random_bernoulli instead.
warnings.warn('tf.keras.backend.random_binomial is deprecated, '

tests/torch/block/test_mlp.py::test_mlp_block
/var/jenkins_home/workspace/merlin_models/models/tests/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()}

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========== 365 passed, 9 skipped, 90 warnings in 573.44s (0:09:33) ============
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/jenkins8935677542508048914.sh

@github-actions
Copy link

github-actions bot commented Apr 4, 2022

Documentation preview

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

@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #297 of commit f343a2a3d1ec4300ef4026e8e9baa5ee377252de, no merge conflicts.
Running as SYSTEM
Setting status of f343a2a3d1ec4300ef4026e8e9baa5ee377252de to PENDING with url https://10.20.13.93:8080/job/merlin_models/27/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/297/*:refs/remotes/origin/pr/297/* # timeout=10
 > git rev-parse f343a2a3d1ec4300ef4026e8e9baa5ee377252de^{commit} # timeout=10
Checking out Revision f343a2a3d1ec4300ef4026e8e9baa5ee377252de (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f f343a2a3d1ec4300ef4026e8e9baa5ee377252de # timeout=10
Commit message: "Some fixes"
 > git rev-list --no-walk b81dc4f60caa2abf34499a46e2a66b4befaec0b1 # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins8077946896278843898.sh
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.1, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 103 items / 27 errors / 3 skipped

==================================== ERRORS ====================================
____________________ ERROR collecting tests/tf/test_core.py ____________________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/test_core.py:7: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
__________________ ERROR collecting tests/tf/test_dataset.py ___________________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/test_dataset.py:24: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
_________________ ERROR collecting tests/tf/test_public_api.py _________________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/test_public_api.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
________________ ERROR collecting tests/tf/blocks/test_dlrm.py _________________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/blocks/test_dlrm.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
____________ ERROR collecting tests/tf/blocks/test_interactions.py _____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/blocks/test_interactions.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
_________________ ERROR collecting tests/tf/blocks/test_mlp.py _________________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/blocks/test_mlp.py:21: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
__________ ERROR collecting tests/tf/blocks/core/test_aggregation.py ___________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/blocks/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/tf/blocks/core/test_aggregation.py:21: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
______________ ERROR collecting tests/tf/blocks/core/test_base.py ______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/blocks/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/tf/blocks/core/test_base.py:17: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
_____________ ERROR collecting tests/tf/blocks/core/test_index.py ______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/blocks/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/tf/blocks/core/test_index.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
____________ ERROR collecting tests/tf/blocks/core/test_masking.py _____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/blocks/core/test_masking.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/tf/blocks/core/test_masking.py:20: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
________ ERROR collecting tests/tf/blocks/core/test_transformations.py _________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/blocks/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/tf/blocks/core/test_transformations.py:20: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
___ ERROR collecting tests/tf/blocks/retrieval/test_matrix_factorization.py ____
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/blocks/retrieval/test_matrix_factorization.py:18: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
_________ ERROR collecting tests/tf/blocks/retrieval/test_two_tower.py _________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/blocks/retrieval/test_two_tower.py:22: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
____________ ERROR collecting tests/tf/features/test_continuous.py _____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/features/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/tf/features/test_continuous.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
_____________ ERROR collecting tests/tf/features/test_embedding.py _____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/features/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/tf/features/test_embedding.py:20: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
______________ ERROR collecting tests/tf/features/test_tabular.py ______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/features/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/tf/features/test_tabular.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
________________ ERROR collecting tests/tf/layers/test_queue.py ________________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/layers/test_queue.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
_______________ ERROR collecting tests/tf/losses/test_losses.py ________________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/losses/test_losses.py:20: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
______________ ERROR collecting tests/tf/models/test_benchmark.py ______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/models/test_benchmark.py:18: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
_______________ ERROR collecting tests/tf/models/test_ranking.py _______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/models/test_ranking.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
______________ ERROR collecting tests/tf/models/test_retrieval.py ______________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/models/test_retrieval.py:4: in
import merlin.models.tf as mm
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
_________ ERROR collecting tests/tf/prediction/test_classification.py __________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/prediction/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/tf/prediction/test_classification.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
___________ ERROR collecting tests/tf/prediction/test_multi_task.py ____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/prediction/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/tf/prediction/test_multi_task.py:3: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
____________ ERROR collecting tests/tf/prediction/test_next_item.py ____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/prediction/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/tf/prediction/test_next_item.py:20: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
___________ ERROR collecting tests/tf/prediction/test_regression.py ____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/prediction/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/tf/prediction/test_regression.py:19: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
____________ ERROR collecting tests/tf/prediction/test_sampling.py _____________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/tf/prediction/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/tf/prediction/test_sampling.py:20: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
________________ ERROR collecting tests/tf/utils/test_batch.py _________________
ImportError while importing test module '/var/jenkins_home/workspace/merlin_models/models/tests/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/tf/utils/test_batch.py:4: in
import merlin.models.tf as ml
merlin/models/tf/init.py:96: in
from merlin.models.tf.models import benchmark
merlin/models/tf/models/benchmark.py:26: in
from merlin.models.tf.models.utils import parse_prediction_tasks
E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'
=============================== warnings summary ===============================
../../../.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22
/var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23: 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_preprocessing/image/utils.py:24
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:24: 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_preprocessing/image/utils.py:25
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:25: 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_preprocessing/image/utils.py:28
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:28: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
if hasattr(pil_image, 'HAMMING'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
_PIL_INTERPOLATION_METHODS['hamming'] = pil_image.HAMMING

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
if hasattr(pil_image, 'BOX'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
_PIL_INTERPOLATION_METHODS['box'] = pil_image.BOX

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
if hasattr(pil_image, 'LANCZOS'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
_PIL_INTERPOLATION_METHODS['lanczos'] = pil_image.LANCZOS

../../../../../usr/lib/python3/dist-packages/requests/init.py:89
/usr/lib/python3/dist-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
interpolation: int = Image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
interpolation: int = Image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11
/usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11: UserWarning: Failed to load image Python extension: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
warn(f"Failed to load image Python extension: {e}")

merlin/models/tf/models/base.py:1
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/models/base.py:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
from collections import Sequence as SequenceCollection

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
ERROR tests/tf/test_core.py
ERROR tests/tf/test_dataset.py
ERROR tests/tf/test_public_api.py
ERROR tests/tf/blocks/test_dlrm.py
ERROR tests/tf/blocks/test_interactions.py
ERROR tests/tf/blocks/test_mlp.py
ERROR tests/tf/blocks/core/test_aggregation.py
ERROR tests/tf/blocks/core/test_base.py
ERROR tests/tf/blocks/core/test_index.py
ERROR tests/tf/blocks/core/test_masking.py
ERROR tests/tf/blocks/core/test_transformations.py
ERROR tests/tf/blocks/retrieval/test_matrix_factorization.py
ERROR tests/tf/blocks/retrieval/test_two_tower.py
ERROR tests/tf/features/test_continuous.py
ERROR tests/tf/features/test_embedding.py
ERROR tests/tf/features/test_tabular.py
ERROR tests/tf/layers/test_queue.py
ERROR tests/tf/losses/test_losses.py
ERROR tests/tf/models/test_benchmark.py
ERROR tests/tf/models/test_ranking.py
ERROR tests/tf/models/test_retrieval.py
ERROR tests/tf/prediction/test_classification.py
ERROR tests/tf/prediction/test_multi_task.py
ERROR tests/tf/prediction/test_next_item.py
ERROR tests/tf/prediction/test_regression.py
ERROR tests/tf/prediction/test_sampling.py
ERROR tests/tf/utils/test_batch.py
!!!!!!!!!!!!!!!!!!! Interrupted: 27 errors during collection !!!!!!!!!!!!!!!!!!!
================== 3 skipped, 17 warnings, 27 errors in 3.42s ==================
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/jenkins3075498338827358373.sh

@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #297 of commit 8cac015ca0326bb41dceeef66913cfa07d83375b, no merge conflicts.
Running as SYSTEM
Setting status of 8cac015ca0326bb41dceeef66913cfa07d83375b to PENDING with url https://10.20.13.93:8080/job/merlin_models/28/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/297/*:refs/remotes/origin/pr/297/* # timeout=10
 > git rev-parse 8cac015ca0326bb41dceeef66913cfa07d83375b^{commit} # timeout=10
Checking out Revision 8cac015ca0326bb41dceeef66913cfa07d83375b (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 8cac015ca0326bb41dceeef66913cfa07d83375b # timeout=10
Commit message: "Fix NCFModel"
 > git rev-list --no-walk f343a2a3d1ec4300ef4026e8e9baa5ee377252de # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins8714959019930468576.sh
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.1, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 372 items / 2 skipped

tests/data/test_advertising.py .s [ 0%]
tests/data/test_ecommerce.py ..sss [ 1%]
tests/data/test_entertainment.py ....sss [ 3%]
tests/data/test_social.py . [ 4%]
tests/data/test_synthetic.py .... [ 5%]
tests/tf/test_core.py ..........FFF... [ 9%]
tests/tf/test_dataset.py .............. [ 13%]
tests/tf/test_public_api.py . [ 13%]
tests/tf/blocks/test_cross.py ............ [ 16%]
tests/tf/blocks/test_dlrm.py ........ [ 18%]
tests/tf/blocks/test_interactions.py . [ 19%]
tests/tf/blocks/test_mlp.py ............................F [ 26%]
tests/tf/blocks/core/test_aggregation.py ......... [ 29%]
tests/tf/blocks/core/test_base.py . [ 29%]
tests/tf/blocks/core/test_index.py .. [ 30%]
tests/tf/blocks/core/test_masking.py ....... [ 31%]
tests/tf/blocks/core/test_transformations.py ........ [ 34%]
tests/tf/blocks/retrieval/test_matrix_factorization.py .. [ 34%]
tests/tf/blocks/retrieval/test_two_tower.py .......... [ 37%]
tests/tf/features/test_continuous.py ..... [ 38%]
tests/tf/features/test_embedding.py ......... [ 41%]
tests/tf/features/test_tabular.py ....... [ 43%]
tests/tf/layers/test_queue.py .............. [ 46%]
tests/tf/losses/test_losses.py ....................... [ 52%]
tests/tf/metrics/test_metrics_ranking.py ................. [ 57%]
tests/tf/models/test_benchmark.py . [ 57%]
tests/tf/models/test_ranking.py ...................... [ 63%]
tests/tf/models/test_retrieval.py ............. [ 67%]
tests/tf/prediction/test_classification.py .. [ 67%]
tests/tf/prediction/test_multi_task.py ....... [ 69%]
tests/tf/prediction/test_next_item.py .................... [ 75%]
tests/tf/prediction/test_regression.py .. [ 75%]
tests/tf/prediction/test_sampling.py .................... [ 80%]
tests/tf/utils/test_batch.py .... [ 81%]
tests/torch/test_dataset.py ......... [ 84%]
tests/torch/test_public_api.py . [ 84%]
tests/torch/block/test_base.py .... [ 85%]
tests/torch/block/test_mlp.py . [ 86%]
tests/torch/features/test_continuous.py .. [ 86%]
tests/torch/features/test_embedding.py .............. [ 90%]
tests/torch/features/test_tabular.py .... [ 91%]
tests/torch/model/test_head.py ............ [ 94%]
tests/torch/model/test_model.py .. [ 95%]
tests/torch/tabular/test_aggregation.py ........ [ 97%]
tests/torch/tabular/test_tabular.py ... [ 98%]
tests/torch/tabular/test_transformations.py ....... [100%]

=================================== FAILURES ===================================
_____________________________ test_block_to_model ______________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7fe372eab4f0>

def test_block_to_model(ecommerce_data: Dataset):
    embedding_options = ml.EmbeddingOptions(embedding_dim_default=32)
  model = ml.MLPBlock([64]).to_model(
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
        embedding_options=embedding_options,
    )

tests/tf/test_core.py:149:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7fe3802cb8e0>
)
kwargs = {'embedding_options': EmbeddingOptions(embedding_dims=None, embedding_dim_default=32, infer_embedding_sizes=False, infer_embedding_sizes_multiplier=2.0, embeddings_initializers=None, combiner='mean')}
InputBlock = <function InputBlock at 0x7fe4da121160>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
____________________________ test_model_from_block _____________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7fe3803629d0>

def test_model_from_block(ecommerce_data: Dataset):
  model = ml.Model.from_block(
        ml.MLPBlock([64]),
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
    )

tests/tf/test_core.py:166:


merlin/models/tf/models/base.py:174: in from_block
return block.to_model(


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7fe3796bff70>
)
kwargs = {}, InputBlock = <function InputBlock at 0x7fe4da121160>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
________________________ test_block_with_input_to_model ________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7fe37983f8b0>

def test_block_with_input_to_model(ecommerce_data: Dataset):
    inputs = ml.InputBlock(ecommerce_data.schema)
    block = inputs.connect(ml.MLPBlock([64]))

    with pytest.raises(ValueError) as excinfo:
      block.to_model(
            ecommerce_data.schema,
            input_block=inputs,
        )

tests/tf/test_core.py:183:


self = SequentialBlock(
(layers): List(
(0): ParallelBlock(
(parallel_layers): Dict(
(categorical): Embed...: List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = ParallelBlock(
(parallel_layers): Dict(
(categorical): EmbeddingFeatures(
(feature_config): Dict(
... (22): 'position'
)
)
(1): AsSparseFeatures()
)
)
)
)
)
prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7fe4da121160>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
__________________________ test_mlp_model_save[True] ___________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7fe342471eb0>
run_eagerly = True
tmp_path = PosixPath('/tmp/pytest-of-jenkins/pytest-0/test_mlp_model_save_True_0')

@pytest.mark.parametrize("run_eagerly", [True])
def test_mlp_model_save(ecommerce_data: Dataset, run_eagerly: bool, tmp_path):
  model = ml.MLPBlock(
        [64], kernel_regularizer=regularizers.l2(1e-1), bias_regularizer=regularizers.l2(1e-1)
    ).to_model(ecommerce_data.schema)

tests/tf/blocks/test_mlp.py:87:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None, prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7fe4da121160>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
=============================== warnings summary ===============================
../../../.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22
/var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23: 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_preprocessing/image/utils.py:24
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:24: 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_preprocessing/image/utils.py:25
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:25: 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_preprocessing/image/utils.py:28
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:28: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
if hasattr(pil_image, 'HAMMING'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
_PIL_INTERPOLATION_METHODS['hamming'] = pil_image.HAMMING

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
if hasattr(pil_image, 'BOX'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
_PIL_INTERPOLATION_METHODS['box'] = pil_image.BOX

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
if hasattr(pil_image, 'LANCZOS'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
_PIL_INTERPOLATION_METHODS['lanczos'] = pil_image.LANCZOS

../../../../../usr/lib/python3/dist-packages/requests/init.py:89
/usr/lib/python3/dist-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
interpolation: int = Image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
interpolation: int = Image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11
/usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11: UserWarning: Failed to load image Python extension: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
warn(f"Failed to load image Python extension: {e}")

merlin/models/tf/models/base.py:1
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/models/base.py:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
from collections import Sequence as SequenceCollection

tests/tf/test_dataset.py::test_tf_drp_reset[100-True-10]
tests/tf/test_dataset.py::test_tf_drp_reset[100-True-9]
tests/tf/test_dataset.py::test_tf_drp_reset[100-True-8]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-10]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-9]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-8]
tests/tf/test_dataset.py::test_tf_catname_ordering
tests/tf/test_dataset.py::test_tf_map
/usr/lib/python3.8/site-packages/cudf/core/dataframe.py:1253: UserWarning: The deep parameter is ignored and is only included for pandas compatibility.
warnings.warn(

tests/tf/blocks/core/test_index.py: 2 warnings
tests/tf/models/test_retrieval.py: 13 warnings
tests/tf/prediction/test_next_item.py: 43 warnings
tests/tf/utils/test_batch.py: 2 warnings
/tmp/tmpp2yx6237.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/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.1]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.3]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.5]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.7]
/var/jenkins_home/.local/lib/python3.8/site-packages/keras/backend.py:6089: UserWarning: tf.keras.backend.random_binomial is deprecated, and will be removed in a future version.Please use tf.keras.backend.random_bernoulli instead.
warnings.warn('tf.keras.backend.random_binomial is deprecated, '

tests/torch/block/test_mlp.py::test_mlp_block
/var/jenkins_home/workspace/merlin_models/models/tests/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()}

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/tf/test_core.py::test_block_to_model - ModuleNotFoundError: No m...
FAILED tests/tf/test_core.py::test_model_from_block - ModuleNotFoundError: No...
FAILED tests/tf/test_core.py::test_block_with_input_to_model - ModuleNotFound...
FAILED tests/tf/blocks/test_mlp.py::test_mlp_model_save[True] - ModuleNotFoun...
====== 4 failed, 361 passed, 9 skipped, 90 warnings in 562.38s (0:09:22) =======
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/jenkins2924674783540245566.sh

@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #297 of commit 0ad9146f031b5aa43fa2a0b0ab64b1baeecaa266, no merge conflicts.
Running as SYSTEM
Setting status of 0ad9146f031b5aa43fa2a0b0ab64b1baeecaa266 to PENDING with url https://10.20.13.93:8080/job/merlin_models/29/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/297/*:refs/remotes/origin/pr/297/* # timeout=10
 > git rev-parse 0ad9146f031b5aa43fa2a0b0ab64b1baeecaa266^{commit} # timeout=10
Checking out Revision 0ad9146f031b5aa43fa2a0b0ab64b1baeecaa266 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 0ad9146f031b5aa43fa2a0b0ab64b1baeecaa266 # timeout=10
Commit message: "Trying to fix prettier in pre-commit"
 > git rev-list --no-walk 8cac015ca0326bb41dceeef66913cfa07d83375b # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins5117959117349032417.sh
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.1, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 372 items / 2 skipped

tests/data/test_advertising.py .s [ 0%]
tests/data/test_ecommerce.py ..sss [ 1%]
tests/data/test_entertainment.py ....sss [ 3%]
tests/data/test_social.py . [ 4%]
tests/data/test_synthetic.py .... [ 5%]
tests/tf/test_core.py ..........FFF... [ 9%]
tests/tf/test_dataset.py .............. [ 13%]
tests/tf/test_public_api.py . [ 13%]
tests/tf/blocks/test_cross.py ............ [ 16%]
tests/tf/blocks/test_dlrm.py ........ [ 18%]
tests/tf/blocks/test_interactions.py . [ 19%]
tests/tf/blocks/test_mlp.py ............................F [ 26%]
tests/tf/blocks/core/test_aggregation.py ......... [ 29%]
tests/tf/blocks/core/test_base.py . [ 29%]
tests/tf/blocks/core/test_index.py .. [ 30%]
tests/tf/blocks/core/test_masking.py ....... [ 31%]
tests/tf/blocks/core/test_transformations.py ........ [ 34%]
tests/tf/blocks/retrieval/test_matrix_factorization.py .. [ 34%]
tests/tf/blocks/retrieval/test_two_tower.py .......... [ 37%]
tests/tf/features/test_continuous.py ..... [ 38%]
tests/tf/features/test_embedding.py ......... [ 41%]
tests/tf/features/test_tabular.py ....... [ 43%]
tests/tf/layers/test_queue.py .............. [ 46%]
tests/tf/losses/test_losses.py ....................... [ 52%]
tests/tf/metrics/test_metrics_ranking.py ................. [ 57%]
tests/tf/models/test_benchmark.py . [ 57%]
tests/tf/models/test_ranking.py ...................... [ 63%]
tests/tf/models/test_retrieval.py ............. [ 67%]
tests/tf/prediction/test_classification.py .. [ 67%]
tests/tf/prediction/test_multi_task.py ....... [ 69%]
tests/tf/prediction/test_next_item.py .................... [ 75%]
tests/tf/prediction/test_regression.py .. [ 75%]
tests/tf/prediction/test_sampling.py .................... [ 80%]
tests/tf/utils/test_batch.py .... [ 81%]
tests/torch/test_dataset.py ......... [ 84%]
tests/torch/test_public_api.py . [ 84%]
tests/torch/block/test_base.py .... [ 85%]
tests/torch/block/test_mlp.py . [ 86%]
tests/torch/features/test_continuous.py .. [ 86%]
tests/torch/features/test_embedding.py .............. [ 90%]
tests/torch/features/test_tabular.py .... [ 91%]
tests/torch/model/test_head.py ............ [ 94%]
tests/torch/model/test_model.py .. [ 95%]
tests/torch/tabular/test_aggregation.py ........ [ 97%]
tests/torch/tabular/test_tabular.py ... [ 98%]
tests/torch/tabular/test_transformations.py ....... [100%]

=================================== FAILURES ===================================
_____________________________ test_block_to_model ______________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7fe1930f6340>

def test_block_to_model(ecommerce_data: Dataset):
    embedding_options = ml.EmbeddingOptions(embedding_dim_default=32)
  model = ml.MLPBlock([64]).to_model(
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
        embedding_options=embedding_options,
    )

tests/tf/test_core.py:149:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7fe17a6818b0>
)
kwargs = {'embedding_options': EmbeddingOptions(embedding_dims=None, embedding_dim_default=32, infer_embedding_sizes=False, infer_embedding_sizes_multiplier=2.0, embeddings_initializers=None, combiner='mean')}
InputBlock = <function InputBlock at 0x7fe2f353e0d0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
____________________________ test_model_from_block _____________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7fe20ee6f6d0>

def test_model_from_block(ecommerce_data: Dataset):
  model = ml.Model.from_block(
        ml.MLPBlock([64]),
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
    )

tests/tf/test_core.py:166:


merlin/models/tf/models/base.py:174: in from_block
return block.to_model(


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7fe190f0f040>
)
kwargs = {}, InputBlock = <function InputBlock at 0x7fe2f353e0d0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
________________________ test_block_with_input_to_model ________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7fe190ecd6a0>

def test_block_with_input_to_model(ecommerce_data: Dataset):
    inputs = ml.InputBlock(ecommerce_data.schema)
    block = inputs.connect(ml.MLPBlock([64]))

    with pytest.raises(ValueError) as excinfo:
      block.to_model(
            ecommerce_data.schema,
            input_block=inputs,
        )

tests/tf/test_core.py:183:


self = SequentialBlock(
(layers): List(
(0): ParallelBlock(
(parallel_layers): Dict(
(categorical): Embed...: List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = ParallelBlock(
(parallel_layers): Dict(
(categorical): EmbeddingFeatures(
(feature_config): Dict(
... (22): 'position'
)
)
(1): AsSparseFeatures()
)
)
)
)
)
prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7fe2f353e0d0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
__________________________ test_mlp_model_save[True] ___________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7fe19180e0a0>
run_eagerly = True
tmp_path = PosixPath('/tmp/pytest-of-jenkins/pytest-1/test_mlp_model_save_True_0')

@pytest.mark.parametrize("run_eagerly", [True])
def test_mlp_model_save(ecommerce_data: Dataset, run_eagerly: bool, tmp_path):
  model = ml.MLPBlock(
        [64], kernel_regularizer=regularizers.l2(1e-1), bias_regularizer=regularizers.l2(1e-1)
    ).to_model(ecommerce_data.schema)

tests/tf/blocks/test_mlp.py:87:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None, prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7fe2f353e0d0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
=============================== warnings summary ===============================
../../../.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22
/var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23: 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_preprocessing/image/utils.py:24
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:24: 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_preprocessing/image/utils.py:25
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:25: 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_preprocessing/image/utils.py:28
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:28: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
if hasattr(pil_image, 'HAMMING'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
_PIL_INTERPOLATION_METHODS['hamming'] = pil_image.HAMMING

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
if hasattr(pil_image, 'BOX'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
_PIL_INTERPOLATION_METHODS['box'] = pil_image.BOX

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
if hasattr(pil_image, 'LANCZOS'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
_PIL_INTERPOLATION_METHODS['lanczos'] = pil_image.LANCZOS

../../../../../usr/lib/python3/dist-packages/requests/init.py:89
/usr/lib/python3/dist-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
interpolation: int = Image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
interpolation: int = Image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11
/usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11: UserWarning: Failed to load image Python extension: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
warn(f"Failed to load image Python extension: {e}")

merlin/models/tf/models/base.py:1
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/models/base.py:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
from collections import Sequence as SequenceCollection

tests/tf/test_dataset.py::test_tf_drp_reset[100-True-10]
tests/tf/test_dataset.py::test_tf_drp_reset[100-True-9]
tests/tf/test_dataset.py::test_tf_drp_reset[100-True-8]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-10]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-9]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-8]
tests/tf/test_dataset.py::test_tf_catname_ordering
tests/tf/test_dataset.py::test_tf_map
/usr/lib/python3.8/site-packages/cudf/core/dataframe.py:1253: UserWarning: The deep parameter is ignored and is only included for pandas compatibility.
warnings.warn(

tests/tf/blocks/core/test_index.py: 2 warnings
tests/tf/models/test_retrieval.py: 13 warnings
tests/tf/prediction/test_next_item.py: 43 warnings
tests/tf/utils/test_batch.py: 2 warnings
/tmp/tmpl4dwgtzm.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/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.1]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.3]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.5]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.7]
/var/jenkins_home/.local/lib/python3.8/site-packages/keras/backend.py:6089: UserWarning: tf.keras.backend.random_binomial is deprecated, and will be removed in a future version.Please use tf.keras.backend.random_bernoulli instead.
warnings.warn('tf.keras.backend.random_binomial is deprecated, '

tests/torch/block/test_mlp.py::test_mlp_block
/var/jenkins_home/workspace/merlin_models/models/tests/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()}

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/tf/test_core.py::test_block_to_model - ModuleNotFoundError: No m...
FAILED tests/tf/test_core.py::test_model_from_block - ModuleNotFoundError: No...
FAILED tests/tf/test_core.py::test_block_with_input_to_model - ModuleNotFound...
FAILED tests/tf/blocks/test_mlp.py::test_mlp_model_save[True] - ModuleNotFoun...
====== 4 failed, 361 passed, 9 skipped, 90 warnings in 562.30s (0:09:22) =======
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/jenkins7052019416726281881.sh

@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #297 of commit 90af15bd6097bf4447c7e42daff01b177b684478, no merge conflicts.
Running as SYSTEM
Setting status of 90af15bd6097bf4447c7e42daff01b177b684478 to PENDING with url https://10.20.13.93:8080/job/merlin_models/30/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/297/*:refs/remotes/origin/pr/297/* # timeout=10
 > git rev-parse 90af15bd6097bf4447c7e42daff01b177b684478^{commit} # timeout=10
Checking out Revision 90af15bd6097bf4447c7e42daff01b177b684478 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 90af15bd6097bf4447c7e42daff01b177b684478 # timeout=10
Commit message: "Trying to fix prettier in pre-commit"
 > git rev-list --no-walk 0ad9146f031b5aa43fa2a0b0ab64b1baeecaa266 # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins589259074747473988.sh
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.1, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 372 items / 2 skipped

tests/data/test_advertising.py .s [ 0%]
tests/data/test_ecommerce.py ..sss [ 1%]
tests/data/test_entertainment.py ....sss [ 3%]
tests/data/test_social.py . [ 4%]
tests/data/test_synthetic.py .... [ 5%]
tests/tf/test_core.py ..........FFF... [ 9%]
tests/tf/test_dataset.py .............. [ 13%]
tests/tf/test_public_api.py . [ 13%]
tests/tf/blocks/test_cross.py ............ [ 16%]
tests/tf/blocks/test_dlrm.py ........ [ 18%]
tests/tf/blocks/test_interactions.py . [ 19%]
tests/tf/blocks/test_mlp.py ............................F [ 26%]
tests/tf/blocks/core/test_aggregation.py ......... [ 29%]
tests/tf/blocks/core/test_base.py . [ 29%]
tests/tf/blocks/core/test_index.py .. [ 30%]
tests/tf/blocks/core/test_masking.py ....... [ 31%]
tests/tf/blocks/core/test_transformations.py ........ [ 34%]
tests/tf/blocks/retrieval/test_matrix_factorization.py .. [ 34%]
tests/tf/blocks/retrieval/test_two_tower.py .......... [ 37%]
tests/tf/features/test_continuous.py ..... [ 38%]
tests/tf/features/test_embedding.py ......... [ 41%]
tests/tf/features/test_tabular.py ....... [ 43%]
tests/tf/layers/test_queue.py .............. [ 46%]
tests/tf/losses/test_losses.py ....................... [ 52%]
tests/tf/metrics/test_metrics_ranking.py ................. [ 57%]
tests/tf/models/test_benchmark.py . [ 57%]
tests/tf/models/test_ranking.py ...................... [ 63%]
tests/tf/models/test_retrieval.py ............. [ 67%]
tests/tf/prediction/test_classification.py .. [ 67%]
tests/tf/prediction/test_multi_task.py ....... [ 69%]
tests/tf/prediction/test_next_item.py .................... [ 75%]
tests/tf/prediction/test_regression.py .. [ 75%]
tests/tf/prediction/test_sampling.py .................... [ 80%]
tests/tf/utils/test_batch.py .... [ 81%]
tests/torch/test_dataset.py ......... [ 84%]
tests/torch/test_public_api.py . [ 84%]
tests/torch/block/test_base.py .... [ 85%]
tests/torch/block/test_mlp.py . [ 86%]
tests/torch/features/test_continuous.py .. [ 86%]
tests/torch/features/test_embedding.py .............. [ 90%]
tests/torch/features/test_tabular.py .... [ 91%]
tests/torch/model/test_head.py ............ [ 94%]
tests/torch/model/test_model.py .. [ 95%]
tests/torch/tabular/test_aggregation.py ........ [ 97%]
tests/torch/tabular/test_tabular.py ... [ 98%]
tests/torch/tabular/test_transformations.py ....... [100%]

=================================== FAILURES ===================================
_____________________________ test_block_to_model ______________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7f1f1fe36820>

def test_block_to_model(ecommerce_data: Dataset):
    embedding_options = ml.EmbeddingOptions(embedding_dim_default=32)
  model = ml.MLPBlock([64]).to_model(
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
        embedding_options=embedding_options,
    )

tests/tf/test_core.py:149:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7f1f174765b0>
)
kwargs = {'embedding_options': EmbeddingOptions(embedding_dims=None, embedding_dim_default=32, infer_embedding_sizes=False, infer_embedding_sizes_multiplier=2.0, embeddings_initializers=None, combiner='mean')}
InputBlock = <function InputBlock at 0x7f207edc60d0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
____________________________ test_model_from_block _____________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7f1f315b3f70>

def test_model_from_block(ecommerce_data: Dataset):
  model = ml.Model.from_block(
        ml.MLPBlock([64]),
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
    )

tests/tf/test_core.py:166:


merlin/models/tf/models/base.py:174: in from_block
return block.to_model(


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7f1f1ea08160>
)
kwargs = {}, InputBlock = <function InputBlock at 0x7f207edc60d0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
________________________ test_block_with_input_to_model ________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7f1f1e981820>

def test_block_with_input_to_model(ecommerce_data: Dataset):
    inputs = ml.InputBlock(ecommerce_data.schema)
    block = inputs.connect(ml.MLPBlock([64]))

    with pytest.raises(ValueError) as excinfo:
      block.to_model(
            ecommerce_data.schema,
            input_block=inputs,
        )

tests/tf/test_core.py:183:


self = SequentialBlock(
(layers): List(
(0): ParallelBlock(
(parallel_layers): Dict(
(categorical): Embed...: List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = ParallelBlock(
(parallel_layers): Dict(
(categorical): EmbeddingFeatures(
(feature_config): Dict(
... (22): 'position'
)
)
(1): AsSparseFeatures()
)
)
)
)
)
prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7f207edc60d0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
__________________________ test_mlp_model_save[True] ___________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7f1f1dd74160>
run_eagerly = True
tmp_path = PosixPath('/tmp/pytest-of-jenkins/pytest-2/test_mlp_model_save_True_0')

@pytest.mark.parametrize("run_eagerly", [True])
def test_mlp_model_save(ecommerce_data: Dataset, run_eagerly: bool, tmp_path):
  model = ml.MLPBlock(
        [64], kernel_regularizer=regularizers.l2(1e-1), bias_regularizer=regularizers.l2(1e-1)
    ).to_model(ecommerce_data.schema)

tests/tf/blocks/test_mlp.py:87:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None, prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7f207edc60d0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
=============================== warnings summary ===============================
../../../.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22
/var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23: 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_preprocessing/image/utils.py:24
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:24: 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_preprocessing/image/utils.py:25
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:25: 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_preprocessing/image/utils.py:28
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:28: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
if hasattr(pil_image, 'HAMMING'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
_PIL_INTERPOLATION_METHODS['hamming'] = pil_image.HAMMING

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
if hasattr(pil_image, 'BOX'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
_PIL_INTERPOLATION_METHODS['box'] = pil_image.BOX

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
if hasattr(pil_image, 'LANCZOS'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
_PIL_INTERPOLATION_METHODS['lanczos'] = pil_image.LANCZOS

../../../../../usr/lib/python3/dist-packages/requests/init.py:89
/usr/lib/python3/dist-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
interpolation: int = Image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
interpolation: int = Image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11
/usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11: UserWarning: Failed to load image Python extension: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
warn(f"Failed to load image Python extension: {e}")

merlin/models/tf/models/base.py:1
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/models/base.py:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
from collections import Sequence as SequenceCollection

tests/tf/test_dataset.py::test_tf_drp_reset[100-True-10]
tests/tf/test_dataset.py::test_tf_drp_reset[100-True-9]
tests/tf/test_dataset.py::test_tf_drp_reset[100-True-8]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-10]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-9]
tests/tf/test_dataset.py::test_tf_drp_reset[100-False-8]
tests/tf/test_dataset.py::test_tf_catname_ordering
tests/tf/test_dataset.py::test_tf_map
/usr/lib/python3.8/site-packages/cudf/core/dataframe.py:1253: UserWarning: The deep parameter is ignored and is only included for pandas compatibility.
warnings.warn(

tests/tf/blocks/core/test_index.py: 2 warnings
tests/tf/models/test_retrieval.py: 13 warnings
tests/tf/prediction/test_next_item.py: 43 warnings
tests/tf/utils/test_batch.py: 2 warnings
/tmp/tmpf2eedqdh.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/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.1]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.3]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.5]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.7]
/var/jenkins_home/.local/lib/python3.8/site-packages/keras/backend.py:6089: UserWarning: tf.keras.backend.random_binomial is deprecated, and will be removed in a future version.Please use tf.keras.backend.random_bernoulli instead.
warnings.warn('tf.keras.backend.random_binomial is deprecated, '

tests/torch/block/test_mlp.py::test_mlp_block
/var/jenkins_home/workspace/merlin_models/models/tests/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()}

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/tf/test_core.py::test_block_to_model - ModuleNotFoundError: No m...
FAILED tests/tf/test_core.py::test_model_from_block - ModuleNotFoundError: No...
FAILED tests/tf/test_core.py::test_block_with_input_to_model - ModuleNotFound...
FAILED tests/tf/blocks/test_mlp.py::test_mlp_model_save[True] - ModuleNotFoun...
====== 4 failed, 361 passed, 9 skipped, 90 warnings in 561.16s (0:09:21) =======
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/jenkins5755318424292135909.sh

@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #297 of commit 7482700e50e71b3165936cccf464e430c502f947, no merge conflicts.
Running as SYSTEM
Setting status of 7482700e50e71b3165936cccf464e430c502f947 to PENDING with url https://10.20.13.93:8080/job/merlin_models/70/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/297/*:refs/remotes/origin/pr/297/* # timeout=10
 > git rev-parse 7482700e50e71b3165936cccf464e430c502f947^{commit} # timeout=10
Checking out Revision 7482700e50e71b3165936cccf464e430c502f947 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 7482700e50e71b3165936cccf464e430c502f947 # timeout=10
Commit message: "Trying to fix prettier in pre-commit"
 > git rev-list --no-walk 9d4e89e69e3bd7a7aee6982295552c340001b173 # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins8039959751512138505.sh
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.1, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 373 items / 2 skipped

tests/datasets/test_advertising.py .s [ 0%]
tests/datasets/test_ecommerce.py ..sss [ 1%]
tests/datasets/test_entertainment.py ....sss [ 3%]
tests/datasets/test_social.py . [ 4%]
tests/datasets/test_synthetic.py ..... [ 5%]
tests/tf/test_core.py ..........FFF... [ 9%]
tests/tf/test_dataset.py .............. [ 13%]
tests/tf/test_public_api.py . [ 13%]
tests/tf/blocks/test_cross.py ............ [ 16%]
tests/tf/blocks/test_dlrm.py ........ [ 19%]
tests/tf/blocks/test_interactions.py . [ 19%]
tests/tf/blocks/test_mlp.py ............................F [ 27%]
tests/tf/blocks/core/test_aggregation.py ......... [ 29%]
tests/tf/blocks/core/test_base.py . [ 29%]
tests/tf/blocks/core/test_index.py .. [ 30%]
tests/tf/blocks/core/test_masking.py ....... [ 32%]
tests/tf/blocks/core/test_transformations.py ........ [ 34%]
tests/tf/blocks/retrieval/test_matrix_factorization.py .. [ 34%]
tests/tf/blocks/retrieval/test_two_tower.py .......... [ 37%]
tests/tf/features/test_continuous.py ..... [ 38%]
tests/tf/features/test_embedding.py ......... [ 41%]
tests/tf/features/test_tabular.py ....... [ 43%]
tests/tf/layers/test_queue.py .............. [ 46%]
tests/tf/losses/test_losses.py ....................... [ 53%]
tests/tf/metrics/test_metrics_ranking.py ................. [ 57%]
tests/tf/models/test_benchmark.py . [ 57%]
tests/tf/models/test_ranking.py ...................... [ 63%]
tests/tf/models/test_retrieval.py .........F... [ 67%]
tests/tf/prediction_tasks/test_classification.py .. [ 67%]
tests/tf/prediction_tasks/test_multi_task.py ....... [ 69%]
tests/tf/prediction_tasks/test_next_item.py .................... [ 75%]
tests/tf/prediction_tasks/test_regression.py .. [ 75%]
tests/tf/prediction_tasks/test_sampling.py .................... [ 80%]
tests/tf/utils/test_batch.py .... [ 82%]
tests/torch/test_dataset.py ......... [ 84%]
tests/torch/test_public_api.py . [ 84%]
tests/torch/block/test_base.py .... [ 85%]
tests/torch/block/test_mlp.py . [ 86%]
tests/torch/features/test_continuous.py .. [ 86%]
tests/torch/features/test_embedding.py .............. [ 90%]
tests/torch/features/test_tabular.py .... [ 91%]
tests/torch/model/test_head.py ............ [ 94%]
tests/torch/model/test_model.py .. [ 95%]
tests/torch/tabular/test_aggregation.py ........ [ 97%]
tests/torch/tabular/test_tabular.py ... [ 98%]
tests/torch/tabular/test_transformations.py ....... [100%]

=================================== FAILURES ===================================
_____________________________ test_block_to_model ______________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7f3f7dfea280>

def test_block_to_model(ecommerce_data: Dataset):
    embedding_options = ml.EmbeddingOptions(embedding_dim_default=32)
  model = ml.MLPBlock([64]).to_model(
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
        embedding_options=embedding_options,
    )

tests/tf/test_core.py:149:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7f3eee11e670>
)
kwargs = {'embedding_options': EmbeddingOptions(embedding_dims=None, embedding_dim_default=32, infer_embedding_sizes=False, infer_embedding_sizes_multiplier=2.0, embeddings_initializers=None, combiner='mean')}
InputBlock = <function InputBlock at 0x7f4053090dc0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
____________________________ test_model_from_block _____________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7f3f015c11c0>

def test_model_from_block(ecommerce_data: Dataset):
  model = ml.Model.from_block(
        ml.MLPBlock([64]),
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
    )

tests/tf/test_core.py:166:


merlin/models/tf/models/base.py:174: in from_block
return block.to_model(


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7f3ef8c0e370>
)
kwargs = {}, InputBlock = <function InputBlock at 0x7f4053090dc0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
________________________ test_block_with_input_to_model ________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7f3ef9944460>

def test_block_with_input_to_model(ecommerce_data: Dataset):
    inputs = ml.InputBlock(ecommerce_data.schema)
    block = inputs.connect(ml.MLPBlock([64]))

    with pytest.raises(ValueError) as excinfo:
      block.to_model(
            ecommerce_data.schema,
            input_block=inputs,
        )

tests/tf/test_core.py:183:


self = SequentialBlock(
(layers): List(
(0): ParallelBlock(
(parallel_layers): Dict(
(categorical): Embed...: List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = ParallelBlock(
(parallel_layers): Dict(
(categorical): EmbeddingFeatures(
(feature_config): Dict(
... (22): 'position'
)
)
(1): AsSparseFeatures()
)
)
)
)
)
prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7f4053090dc0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
__________________________ test_mlp_model_save[True] ___________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7f3ef97852b0>
run_eagerly = True
tmp_path = PosixPath('/tmp/pytest-of-jenkins/pytest-16/test_mlp_model_save_True_0')

@pytest.mark.parametrize("run_eagerly", [True])
def test_mlp_model_save(ecommerce_data: Dataset, run_eagerly: bool, tmp_path):
  model = ml.MLPBlock(
        [64], kernel_regularizer=regularizers.l2(1e-1), bias_regularizer=regularizers.l2(1e-1)
    ).to_model(ecommerce_data.schema)

tests/tf/blocks/test_mlp.py:87:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None, prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7f4053090dc0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
____ test_two_tower_retrieval_model_with_metrics[binary_crossentropy-False] ____

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7f3ea3ccca60>
run_eagerly = False, loss = 'binary_crossentropy'

@pytest.mark.parametrize("run_eagerly", [True, False])
@pytest.mark.parametrize("loss", ["categorical_crossentropy", "bpr", "binary_crossentropy"])
def test_two_tower_retrieval_model_with_metrics(ecommerce_data: Dataset, run_eagerly, loss):
    ecommerce_data.schema = ecommerce_data.schema.remove_by_tag(Tags.TARGET)

    metrics = [RecallAt(5), MRRAt(5), NDCGAt(5), AvgPrecisionAt(5), PrecisionAt(5)]
    model = mm.TwoTowerModel(
        schema=ecommerce_data.schema,
        query_tower=mm.MLPBlock([128, 64]),
        samplers=[mm.InBatchSampler()],
        metrics=metrics,
        loss=loss,
    )
    # Setting up evaluation
    model.set_retrieval_candidates_for_evaluation(ecommerce_data)
    model.compile(optimizer="adam", run_eagerly=run_eagerly)

    # Training
    num_epochs = 2
    losses = model.fit(
        ecommerce_data,
        batch_size=10,
        epochs=num_epochs,
        train_metrics_steps=3,
        validation_data=ecommerce_data,
        validation_steps=3,
    )
    assert len(losses.epoch) == num_epochs

    # Checking train metrics
    expected_metrics = ["recall_at_5", "mrr_at_5", "ndcg_5", "map_at_5", "precision_at_5"]
    expected_loss_metrics = ["loss", "regularization_loss", "total_loss"]
    expected_metrics_all = expected_metrics + expected_loss_metrics
    assert len(expected_metrics_all) == len(
        set(losses.history.keys()).intersection(set(expected_metrics_all))
    )
    for metric_name in expected_metrics + expected_loss_metrics:
        assert len(losses.history[metric_name]) == num_epochs
        if metric_name in expected_metrics:
            assert losses.history[metric_name][1] >= losses.history[metric_name][0]
        elif metric_name in expected_loss_metrics:
          assert losses.history[metric_name][1] <= losses.history[metric_name][0]

E assert 0.2920134961605072 <= 0.28963685035705566

tests/tf/models/test_retrieval.py:75: AssertionError
----------------------------- Captured stdout call -----------------------------
Epoch 1/2

1/10 [==>...........................] - ETA: 41s - recall_at_5: 0.6000 - mrr_at_5: 0.1983 - ndcg_5: 0.2966 - map_at_5: 0.1983 - precision_at_5: 0.1200 - loss: 0.4466 - regularization_loss: 0.0000e+00 - total_loss: 0.4466�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
6/10 [=================>............] - ETA: 0s - recall_at_5: 0.4500 - mrr_at_5: 0.1842 - ndcg_5: 0.2492 - map_at_5: 0.1842 - precision_at_5: 0.0900 - loss: 0.3515 - regularization_loss: 0.0000e+00 - total_loss: 0.3515 ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
10/10 [==============================] - ETA: 0s - recall_at_5: 0.5000 - mrr_at_5: 0.2154 - ndcg_5: 0.2850 - map_at_5: 0.2154 - precision_at_5: 0.1000 - loss: 0.3322 - regularization_loss: 0.0000e+00 - total_loss: 0.3322����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
10/10 [==============================] - 11s 723ms/step - recall_at_5: 0.5000 - mrr_at_5: 0.2154 - ndcg_5: 0.2850 - map_at_5: 0.2154 - precision_at_5: 0.1000 - loss: 0.3284 - regularization_loss: 0.0000e+00 - total_loss: 0.3284 - val_recall_at_5: 0.7333 - val_mrr_at_5: 0.3611 - val_ndcg_5: 0.4527 - val_map_at_5: 0.3611 - val_precision_at_5: 0.1467 - val_loss: 0.2843 - val_regularization_loss: 0.0000e+00 - val_total_loss: 0.2843
Epoch 2/2

1/10 [==>...........................] - ETA: 0s - recall_at_5: 0.5000 - mrr_at_5: 0.2833 - ndcg_5: 0.3393 - map_at_5: 0.2833 - precision_at_5: 0.1000 - loss: 0.2945 - regularization_loss: 0.0000e+00 - total_loss: 0.2945����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
5/10 [==============>...............] - ETA: 0s - recall_at_5: 0.6500 - mrr_at_5: 0.3933 - ndcg_5: 0.4570 - map_at_5: 0.3933 - precision_at_5: 0.1300 - loss: 0.2911 - regularization_loss: 0.0000e+00 - total_loss: 0.2911����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
9/10 [==========================>...] - ETA: 0s - recall_at_5: 0.6667 - mrr_at_5: 0.3939 - ndcg_5: 0.4617 - map_at_5: 0.3939 - precision_at_5: 0.1333 - loss: 0.2874 - regularization_loss: 0.0000e+00 - total_loss: 0.2874����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
10/10 [==============================] - 4s 410ms/step - recall_at_5: 0.6500 - mrr_at_5: 0.3683 - ndcg_5: 0.4386 - map_at_5: 0.3683 - precision_at_5: 0.1300 - loss: 0.2883 - regularization_loss: 0.0000e+00 - total_loss: 0.2883 - val_recall_at_5: 0.8000 - val_mrr_at_5: 0.4617 - val_ndcg_5: 0.5467 - val_map_at_5: 0.4617 - val_precision_at_5: 0.1600 - val_loss: 0.2613 - val_regularization_loss: 0.0000e+00 - val_total_loss: 0.2613
----------------------------- Captured stderr call -----------------------------
WARNING:tensorflow:AutoGraph could not transform <function trace_model_call.._wrapped_model at 0x7f3eef11e430> and will run it as-is.
Please report this to the TensorFlow team. When filing the bug, set the verbosity to 10 (on Linux, export AUTOGRAPH_VERBOSITY=10) and attach the full output.
Cause: unsupported operand type(s) for -: 'NoneType' and 'int'
To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert
WARNING:tensorflow:AutoGraph could not transform <function canonicalize_signatures..signature_wrapper at 0x7f3eca34dd30> and will run it as-is.
Please report this to the TensorFlow team. When filing the bug, set the verbosity to 10 (on Linux, export AUTOGRAPH_VERBOSITY=10) and attach the full output.
Cause: unsupported operand type(s) for -: 'NoneType' and 'int'
To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert
WARNING:tensorflow:No training configuration found in save file, so the model was not compiled. Compile it manually.
2022-04-05 15:29:46.154679: W tensorflow/core/grappler/optimizers/loop_optimizer.cc:907] Skipping loop optimization for Merge node with control input: cond/then/_0/cond/cond/branch_executed/_236
WARNING:tensorflow:AutoGraph could not transform <function trace_model_call.._wrapped_model at 0x7f3eefdae5e0> and will run it as-is.
Please report this to the TensorFlow team. When filing the bug, set the verbosity to 10 (on Linux, export AUTOGRAPH_VERBOSITY=10) and attach the full output.
Cause: unsupported operand type(s) for -: 'NoneType' and 'int'
To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert
WARNING:tensorflow:AutoGraph could not transform <function canonicalize_signatures..signature_wrapper at 0x7f3e8ffbae50> and will run it as-is.
Please report this to the TensorFlow team. When filing the bug, set the verbosity to 10 (on Linux, export AUTOGRAPH_VERBOSITY=10) and attach the full output.
Cause: unsupported operand type(s) for -: 'NoneType' and 'int'
To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert
WARNING:tensorflow:No training configuration found in save file, so the model was not compiled. Compile it manually.
------------------------------ Captured log call -------------------------------
WARNING merlin_models:api.py:451 The sampler InBatchSampler returned no samples for this batch.
WARNING tensorflow:ag_logging.py:146 AutoGraph could not transform <function trace_model_call.._wrapped_model at 0x7f3eef11e430> and will run it as-is.
Please report this to the TensorFlow team. When filing the bug, set the verbosity to 10 (on Linux, export AUTOGRAPH_VERBOSITY=10) and attach the full output.
Cause: unsupported operand type(s) for -: 'NoneType' and 'int'
To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert
WARNING tensorflow:ag_logging.py:146 AutoGraph could not transform <function canonicalize_signatures..signature_wrapper at 0x7f3eca34dd30> and will run it as-is.
Please report this to the TensorFlow team. When filing the bug, set the verbosity to 10 (on Linux, export AUTOGRAPH_VERBOSITY=10) and attach the full output.
Cause: unsupported operand type(s) for -: 'NoneType' and 'int'
To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert
WARNING absl:save.py:249 Found untraced functions such as block_context_88_layer_call_fn, block_context_88_layer_call_and_return_conditional_losses, block_context_88_layer_call_fn, block_context_88_layer_call_and_return_conditional_losses, block_context_88_layer_call_and_return_conditional_losses while saving (showing 5 of 65). These functions will not be directly callable after loading.
WARNING tensorflow:load.py:165 No training configuration found in save file, so the model was not compiled. Compile it manually.
WARNING tensorflow:ag_logging.py:146 AutoGraph could not transform <function trace_model_call.._wrapped_model at 0x7f3eefdae5e0> and will run it as-is.
Please report this to the TensorFlow team. When filing the bug, set the verbosity to 10 (on Linux, export AUTOGRAPH_VERBOSITY=10) and attach the full output.
Cause: unsupported operand type(s) for -: 'NoneType' and 'int'
To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert
WARNING tensorflow:ag_logging.py:146 AutoGraph could not transform <function canonicalize_signatures..signature_wrapper at 0x7f3e8ffbae50> and will run it as-is.
Please report this to the TensorFlow team. When filing the bug, set the verbosity to 10 (on Linux, export AUTOGRAPH_VERBOSITY=10) and attach the full output.
Cause: unsupported operand type(s) for -: 'NoneType' and 'int'
To silence this warning, decorate the function with @tf.autograph.experimental.do_not_convert
WARNING absl:save.py:249 Found untraced functions such as block_context_88_layer_call_fn, block_context_88_layer_call_and_return_conditional_losses, block_context_88_layer_call_fn, block_context_88_layer_call_and_return_conditional_losses, block_context_88_layer_call_and_return_conditional_losses while saving (showing 5 of 65). These functions will not be directly callable after loading.
WARNING tensorflow:load.py:165 No training configuration found in save file, so the model was not compiled. Compile it manually.
=============================== warnings summary ===============================
../../../.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22
/var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23: 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_preprocessing/image/utils.py:24
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:24: 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_preprocessing/image/utils.py:25
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:25: 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_preprocessing/image/utils.py:28
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:28: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
if hasattr(pil_image, 'HAMMING'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
_PIL_INTERPOLATION_METHODS['hamming'] = pil_image.HAMMING

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
if hasattr(pil_image, 'BOX'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
_PIL_INTERPOLATION_METHODS['box'] = pil_image.BOX

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
if hasattr(pil_image, 'LANCZOS'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
_PIL_INTERPOLATION_METHODS['lanczos'] = pil_image.LANCZOS

../../../../../usr/lib/python3/dist-packages/requests/init.py:89
/usr/lib/python3/dist-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
interpolation: int = Image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
interpolation: int = Image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11
/usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11: UserWarning: Failed to load image Python extension: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
warn(f"Failed to load image Python extension: {e}")

merlin/models/tf/models/base.py:1
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/models/base.py:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
from collections import Sequence as SequenceCollection

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

tests/tf/blocks/core/test_index.py: 2 warnings
tests/tf/models/test_retrieval.py: 13 warnings
tests/tf/prediction_tasks/test_next_item.py: 43 warnings
tests/tf/utils/test_batch.py: 2 warnings
/tmp/tmptsc9rzc5.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/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.1]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.3]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.5]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.7]
/var/jenkins_home/.local/lib/python3.8/site-packages/keras/backend.py:6089: UserWarning: tf.keras.backend.random_binomial is deprecated, and will be removed in a future version.Please use tf.keras.backend.random_bernoulli instead.
warnings.warn('tf.keras.backend.random_binomial is deprecated, '

tests/torch/block/test_mlp.py::test_mlp_block
/var/jenkins_home/workspace/merlin_models/models/tests/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()}

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/tf/test_core.py::test_block_to_model - ModuleNotFoundError: No m...
FAILED tests/tf/test_core.py::test_model_from_block - ModuleNotFoundError: No...
FAILED tests/tf/test_core.py::test_block_with_input_to_model - ModuleNotFound...
FAILED tests/tf/blocks/test_mlp.py::test_mlp_model_save[True] - ModuleNotFoun...
FAILED tests/tf/models/test_retrieval.py::test_two_tower_retrieval_model_with_metrics[binary_crossentropy-False]
====== 5 failed, 361 passed, 9 skipped, 91 warnings in 557.33s (0:09:17) =======
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/jenkins3143478941948146407.sh

@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #297 of commit 5b135ebd5bbd2340185b5c3f11074b35b84cbfc2, no merge conflicts.
Running as SYSTEM
Setting status of 5b135ebd5bbd2340185b5c3f11074b35b84cbfc2 to PENDING with url https://10.20.13.93:8080/job/merlin_models/71/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/297/*:refs/remotes/origin/pr/297/* # timeout=10
 > git rev-parse 5b135ebd5bbd2340185b5c3f11074b35b84cbfc2^{commit} # timeout=10
Checking out Revision 5b135ebd5bbd2340185b5c3f11074b35b84cbfc2 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 5b135ebd5bbd2340185b5c3f11074b35b84cbfc2 # timeout=10
Commit message: "fix youtube-dnn docstrings"
 > git rev-list --no-walk 7482700e50e71b3165936cccf464e430c502f947 # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins6900943387910905316.sh
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.1, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 373 items / 2 skipped

tests/datasets/test_advertising.py .s [ 0%]
tests/datasets/test_ecommerce.py ..sss [ 1%]
tests/datasets/test_entertainment.py ....sss [ 3%]
tests/datasets/test_social.py . [ 4%]
tests/datasets/test_synthetic.py ..... [ 5%]
tests/tf/test_core.py ..........FFF... [ 9%]
tests/tf/test_dataset.py .............. [ 13%]
tests/tf/test_public_api.py . [ 13%]
tests/tf/blocks/test_cross.py ............ [ 16%]
tests/tf/blocks/test_dlrm.py ........ [ 19%]
tests/tf/blocks/test_interactions.py . [ 19%]
tests/tf/blocks/test_mlp.py ............................F [ 27%]
tests/tf/blocks/core/test_aggregation.py ......... [ 29%]
tests/tf/blocks/core/test_base.py . [ 29%]
tests/tf/blocks/core/test_index.py .. [ 30%]
tests/tf/blocks/core/test_masking.py ....... [ 32%]
tests/tf/blocks/core/test_transformations.py ........ [ 34%]
tests/tf/blocks/retrieval/test_matrix_factorization.py .. [ 34%]
tests/tf/blocks/retrieval/test_two_tower.py .......... [ 37%]
tests/tf/features/test_continuous.py ..... [ 38%]
tests/tf/features/test_embedding.py ......... [ 41%]
tests/tf/features/test_tabular.py ....... [ 43%]
tests/tf/layers/test_queue.py .............. [ 46%]
tests/tf/losses/test_losses.py ....................... [ 53%]
tests/tf/metrics/test_metrics_ranking.py ................. [ 57%]
tests/tf/models/test_benchmark.py . [ 57%]
tests/tf/models/test_ranking.py ...................... [ 63%]
tests/tf/models/test_retrieval.py ............. [ 67%]
tests/tf/prediction_tasks/test_classification.py .. [ 67%]
tests/tf/prediction_tasks/test_multi_task.py ....... [ 69%]
tests/tf/prediction_tasks/test_next_item.py .................... [ 75%]
tests/tf/prediction_tasks/test_regression.py .. [ 75%]
tests/tf/prediction_tasks/test_sampling.py .................... [ 80%]
tests/tf/utils/test_batch.py .... [ 82%]
tests/torch/test_dataset.py ......... [ 84%]
tests/torch/test_public_api.py . [ 84%]
tests/torch/block/test_base.py .... [ 85%]
tests/torch/block/test_mlp.py . [ 86%]
tests/torch/features/test_continuous.py .. [ 86%]
tests/torch/features/test_embedding.py .............. [ 90%]
tests/torch/features/test_tabular.py .... [ 91%]
tests/torch/model/test_head.py ............ [ 94%]
tests/torch/model/test_model.py .. [ 95%]
tests/torch/tabular/test_aggregation.py ........ [ 97%]
tests/torch/tabular/test_tabular.py ... [ 98%]
tests/torch/tabular/test_transformations.py ....... [100%]

=================================== FAILURES ===================================
_____________________________ test_block_to_model ______________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7ff1ac873160>

def test_block_to_model(ecommerce_data: Dataset):
    embedding_options = ml.EmbeddingOptions(embedding_dim_default=32)
  model = ml.MLPBlock([64]).to_model(
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
        embedding_options=embedding_options,
    )

tests/tf/test_core.py:149:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7ff03c87a220>
)
kwargs = {'embedding_options': EmbeddingOptions(embedding_dims=None, embedding_dim_default=32, infer_embedding_sizes=False, infer_embedding_sizes_multiplier=2.0, embeddings_initializers=None, combiner='mean')}
InputBlock = <function InputBlock at 0x7ff1ac769e50>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
____________________________ test_model_from_block _____________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7ff057a28940>

def test_model_from_block(ecommerce_data: Dataset):
  model = ml.Model.from_block(
        ml.MLPBlock([64]),
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
    )

tests/tf/test_core.py:166:


merlin/models/tf/models/base.py:174: in from_block
return block.to_model(


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7ff05411f4c0>
)
kwargs = {}, InputBlock = <function InputBlock at 0x7ff1ac769e50>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
________________________ test_block_with_input_to_model ________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7ff0540578b0>

def test_block_with_input_to_model(ecommerce_data: Dataset):
    inputs = ml.InputBlock(ecommerce_data.schema)
    block = inputs.connect(ml.MLPBlock([64]))

    with pytest.raises(ValueError) as excinfo:
      block.to_model(
            ecommerce_data.schema,
            input_block=inputs,
        )

tests/tf/test_core.py:183:


self = SequentialBlock(
(layers): List(
(0): ParallelBlock(
(parallel_layers): Dict(
(categorical): Embed...: List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = ParallelBlock(
(parallel_layers): Dict(
(categorical): EmbeddingFeatures(
(feature_config): Dict(
... (22): 'position'
)
)
(1): AsSparseFeatures()
)
)
)
)
)
prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7ff1ac769e50>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
__________________________ test_mlp_model_save[True] ___________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7ff017cacd90>
run_eagerly = True
tmp_path = PosixPath('/tmp/pytest-of-jenkins/pytest-18/test_mlp_model_save_True_0')

@pytest.mark.parametrize("run_eagerly", [True])
def test_mlp_model_save(ecommerce_data: Dataset, run_eagerly: bool, tmp_path):
  model = ml.MLPBlock(
        [64], kernel_regularizer=regularizers.l2(1e-1), bias_regularizer=regularizers.l2(1e-1)
    ).to_model(ecommerce_data.schema)

tests/tf/blocks/test_mlp.py:87:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.CATEGORICAL: 'categorical'>, <Tags.USER: 'user'>}, 'properties': {'domain'...ion'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None, prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7ff1ac769e50>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
=============================== warnings summary ===============================
../../../.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22
/var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23: 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_preprocessing/image/utils.py:24
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:24: 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_preprocessing/image/utils.py:25
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:25: 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_preprocessing/image/utils.py:28
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:28: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
if hasattr(pil_image, 'HAMMING'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
_PIL_INTERPOLATION_METHODS['hamming'] = pil_image.HAMMING

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
if hasattr(pil_image, 'BOX'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
_PIL_INTERPOLATION_METHODS['box'] = pil_image.BOX

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
if hasattr(pil_image, 'LANCZOS'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
_PIL_INTERPOLATION_METHODS['lanczos'] = pil_image.LANCZOS

../../../../../usr/lib/python3/dist-packages/requests/init.py:89
/usr/lib/python3/dist-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
interpolation: int = Image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
interpolation: int = Image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11
/usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11: UserWarning: Failed to load image Python extension: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
warn(f"Failed to load image Python extension: {e}")

merlin/models/tf/models/base.py:1
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/models/base.py:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
from collections import Sequence as SequenceCollection

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

tests/tf/blocks/core/test_index.py: 2 warnings
tests/tf/models/test_retrieval.py: 13 warnings
tests/tf/prediction_tasks/test_next_item.py: 43 warnings
tests/tf/utils/test_batch.py: 2 warnings
/tmp/tmpbvnpthe4.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/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.1]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.3]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.5]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.7]
/var/jenkins_home/.local/lib/python3.8/site-packages/keras/backend.py:6089: UserWarning: tf.keras.backend.random_binomial is deprecated, and will be removed in a future version.Please use tf.keras.backend.random_bernoulli instead.
warnings.warn('tf.keras.backend.random_binomial is deprecated, '

tests/torch/block/test_mlp.py::test_mlp_block
/var/jenkins_home/workspace/merlin_models/models/tests/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()}

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/tf/test_core.py::test_block_to_model - ModuleNotFoundError: No m...
FAILED tests/tf/test_core.py::test_model_from_block - ModuleNotFoundError: No...
FAILED tests/tf/test_core.py::test_block_with_input_to_model - ModuleNotFound...
FAILED tests/tf/blocks/test_mlp.py::test_mlp_model_save[True] - ModuleNotFoun...
====== 4 failed, 362 passed, 9 skipped, 91 warnings in 568.09s (0:09:28) =======
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/jenkins7498319893969448096.sh

@nvidia-merlin-bot
Copy link

Click to view CI Results
GitHub pull request #297 of commit 0895d0a7124548b3eb09ae363e78a50aa30a9292, no merge conflicts.
Running as SYSTEM
Setting status of 0895d0a7124548b3eb09ae363e78a50aa30a9292 to PENDING with url https://10.20.13.93:8080/job/merlin_models/80/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/297/*:refs/remotes/origin/pr/297/* # timeout=10
 > git rev-parse 0895d0a7124548b3eb09ae363e78a50aa30a9292^{commit} # timeout=10
Checking out Revision 0895d0a7124548b3eb09ae363e78a50aa30a9292 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 0895d0a7124548b3eb09ae363e78a50aa30a9292 # timeout=10
Commit message: "Merge branch 'main' into docs-strings"
 > git rev-list --no-walk 8f0adfe447c529fba71e5d7d5e839d4f0fc8022b # timeout=10
[merlin_models] $ /bin/bash /tmp/jenkins6986482734783243032.sh
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.1, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_models/models, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 373 items / 2 skipped

tests/datasets/test_advertising.py .s [ 0%]
tests/datasets/test_ecommerce.py ..sss [ 1%]
tests/datasets/test_entertainment.py ....sss [ 3%]
tests/datasets/test_social.py . [ 4%]
tests/datasets/test_synthetic.py ..... [ 5%]
tests/tf/test_core.py ..........FFF... [ 9%]
tests/tf/test_dataset.py .............. [ 13%]
tests/tf/test_public_api.py . [ 13%]
tests/tf/blocks/test_cross.py ............ [ 16%]
tests/tf/blocks/test_dlrm.py ........ [ 19%]
tests/tf/blocks/test_interactions.py . [ 19%]
tests/tf/blocks/test_mlp.py ............................F [ 27%]
tests/tf/blocks/core/test_aggregation.py ......... [ 29%]
tests/tf/blocks/core/test_base.py . [ 29%]
tests/tf/blocks/core/test_index.py .. [ 30%]
tests/tf/blocks/core/test_masking.py ....... [ 32%]
tests/tf/blocks/core/test_transformations.py ........ [ 34%]
tests/tf/blocks/retrieval/test_matrix_factorization.py .. [ 34%]
tests/tf/blocks/retrieval/test_two_tower.py .......... [ 37%]
tests/tf/features/test_continuous.py ..... [ 38%]
tests/tf/features/test_embedding.py ......... [ 41%]
tests/tf/features/test_tabular.py ....... [ 43%]
tests/tf/layers/test_queue.py .............. [ 46%]
tests/tf/losses/test_losses.py ....................... [ 53%]
tests/tf/metrics/test_metrics_ranking.py ................. [ 57%]
tests/tf/models/test_benchmark.py . [ 57%]
tests/tf/models/test_ranking.py ...................... [ 63%]
tests/tf/models/test_retrieval.py ............. [ 67%]
tests/tf/prediction_tasks/test_classification.py .. [ 67%]
tests/tf/prediction_tasks/test_multi_task.py ....... [ 69%]
tests/tf/prediction_tasks/test_next_item.py .................... [ 75%]
tests/tf/prediction_tasks/test_regression.py .. [ 75%]
tests/tf/prediction_tasks/test_sampling.py .................... [ 80%]
tests/tf/utils/test_batch.py .... [ 82%]
tests/torch/test_dataset.py ......... [ 84%]
tests/torch/test_public_api.py . [ 84%]
tests/torch/block/test_base.py .... [ 85%]
tests/torch/block/test_mlp.py . [ 86%]
tests/torch/features/test_continuous.py .. [ 86%]
tests/torch/features/test_embedding.py .............. [ 90%]
tests/torch/features/test_tabular.py .... [ 91%]
tests/torch/model/test_head.py ............ [ 94%]
tests/torch/model/test_model.py .. [ 95%]
tests/torch/tabular/test_aggregation.py ........ [ 97%]
tests/torch/tabular/test_tabular.py ... [ 98%]
tests/torch/tabular/test_transformations.py ....... [100%]

=================================== FAILURES ===================================
_____________________________ test_block_to_model ______________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7ff39b6910a0>

def test_block_to_model(ecommerce_data: Dataset):
    embedding_options = ml.EmbeddingOptions(embedding_dim_default=32)
  model = ml.MLPBlock([64]).to_model(
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
        embedding_options=embedding_options,
    )

tests/tf/test_core.py:149:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7ff37fd22340>
)
kwargs = {'embedding_options': EmbeddingOptions(embedding_dims=None, embedding_dim_default=32, infer_embedding_sizes=False, infer_embedding_sizes_multiplier=2.0, embeddings_initializers=None, combiner='mean')}
InputBlock = <function InputBlock at 0x7ff4ed8c4ca0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
____________________________ test_model_from_block _____________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7ff398ac8040>

def test_model_from_block(ecommerce_data: Dataset):
  model = ml.Model.from_block(
        ml.MLPBlock([64]),
        ecommerce_data.schema,
        prediction_tasks=ml.BinaryClassificationTask("click"),
    )

tests/tf/test_core.py:166:


merlin/models/tf/models/base.py:174: in from_block
return block.to_model(


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None
prediction_tasks = BinaryClassificationTask(
(eval_metrics): List(
(0): Precision(
(thresholds): List(
(0): 0.5
...e_bias=True)
(output_activation): Activation()
(loss): <keras.losses.BinaryCrossentropy object at 0x7ff37fdf4b80>
)
kwargs = {}, InputBlock = <function InputBlock at 0x7ff4ed8c4ca0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
________________________ test_block_with_input_to_model ________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7ff3988b0490>

def test_block_with_input_to_model(ecommerce_data: Dataset):
    inputs = ml.InputBlock(ecommerce_data.schema)
    block = inputs.connect(ml.MLPBlock([64]))

    with pytest.raises(ValueError) as excinfo:
      block.to_model(
            ecommerce_data.schema,
            input_block=inputs,
        )

tests/tf/test_core.py:183:


self = SequentialBlock(
(layers): List(
(0): ParallelBlock(
(parallel_layers): Dict(
(categorical): Embed...: List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = ParallelBlock(
(parallel_layers): Dict(
(categorical): EmbeddingFeatures(
(feature_config): Dict(
... (22): 'position'
)
)
(1): AsSparseFeatures()
)
)
)
)
)
prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7ff4ed8c4ca0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
__________________________ test_mlp_model_save[True] ___________________________

ecommerce_data = <merlin.io.dataset.Dataset object at 0x7ff37de50a30>
run_eagerly = True
tmp_path = PosixPath('/tmp/pytest-of-jenkins/pytest-44/test_mlp_model_save_True_0')

@pytest.mark.parametrize("run_eagerly", [True])
def test_mlp_model_save(ecommerce_data: Dataset, run_eagerly: bool, tmp_path):
  model = ml.MLPBlock(
        [64], kernel_regularizer=regularizers.l2(1e-1), bias_regularizer=regularizers.l2(1e-1)
    ).to_model(ecommerce_data.schema)

tests/tf/blocks/test_mlp.py:87:


self = MLPBlock(
(layers): List(
(0): _Dense(
(dense): Dense(64, activation=relu, use_bias=True)
)
)
)
schema = [{'name': 'user_categories', 'tags': {<Tags.USER: 'user'>, <Tags.CATEGORICAL: 'categorical'>}, 'properties': {'domain'...get'>}, 'properties': {'domain': {'min': 0, 'max': 0}}, 'dtype': dtype('int64'), 'is_list': False, 'is_ragged': False}]
input_block = None, prediction_tasks = None, kwargs = {}
InputBlock = <function InputBlock at 0x7ff4ed8c4ca0>
Model = <class 'merlin.models.tf.models.base.Model'>

def to_model(
    self,
    schema: Schema,
    input_block: Optional[Block] = None,
    prediction_tasks: Optional[
        Union["PredictionTask", List["PredictionTask"], "ParallelPredictionBlock"]
    ] = None,
    **kwargs,
) -> "Model":
    """Wrap the block between inputs & outputs to create a model.

    Parameters
    ----------
    schema: Schema
        Schema to use for the model.
    input_block: Optional[Block]
        Block to use as input.
    prediction_tasks: Optional[
        Union[PredictionTask, List[PredictionTask], ParallelPredictionBlock]
    ]
        Prediction tasks to use.

    """
    from merlin.models.tf.blocks.core.inputs import InputBlock
    from merlin.models.tf.models.base import Model
  from merlin.models.tf.models.utils import parse_prediction_tasks

E ModuleNotFoundError: No module named 'merlin.models.tf.models.utils'

merlin/models/tf/blocks/core/base.py:605: ModuleNotFoundError
=============================== warnings summary ===============================
../../../.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22
/var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow/python/autograph/impl/api.py:22: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:23: 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_preprocessing/image/utils.py:24
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:24: 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_preprocessing/image/utils.py:25
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:25: 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_preprocessing/image/utils.py:28
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:28: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
if hasattr(pil_image, 'HAMMING'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:29: DeprecationWarning: HAMMING is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.HAMMING instead.
_PIL_INTERPOLATION_METHODS['hamming'] = pil_image.HAMMING

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:30: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
if hasattr(pil_image, 'BOX'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:31: DeprecationWarning: BOX is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BOX instead.
_PIL_INTERPOLATION_METHODS['box'] = pil_image.BOX

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:33: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
if hasattr(pil_image, 'LANCZOS'):

../../../../../usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34
/usr/local/lib/python3.8/dist-packages/keras_preprocessing/image/utils.py:34: DeprecationWarning: LANCZOS is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.LANCZOS instead.
_PIL_INTERPOLATION_METHODS['lanczos'] = pil_image.LANCZOS

../../../../../usr/lib/python3/dist-packages/requests/init.py:89
/usr/lib/python3/dist-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (1.26.9) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:228: DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BILINEAR instead.
interpolation: int = Image.BILINEAR,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:296: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:312: DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
interpolation: int = Image.NEAREST,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329
/usr/local/lib/python3.8/dist-packages/torchvision/transforms/functional_pil.py:329: DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 (2023-07-01). Use Resampling.BICUBIC instead.
interpolation: int = Image.BICUBIC,

../../../../../usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11
/usr/local/lib/python3.8/dist-packages/torchvision/io/image.py:11: UserWarning: Failed to load image Python extension: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory
warn(f"Failed to load image Python extension: {e}")

merlin/models/tf/models/base.py:1
/var/jenkins_home/workspace/merlin_models/models/merlin/models/tf/models/base.py:1: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.10 it will stop working
from collections import Sequence as SequenceCollection

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

tests/tf/blocks/core/test_index.py: 2 warnings
tests/tf/models/test_retrieval.py: 13 warnings
tests/tf/prediction_tasks/test_next_item.py: 43 warnings
tests/tf/utils/test_batch.py: 2 warnings
/tmp/tmpdh20orky.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/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.1]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.3]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.5]
tests/tf/blocks/core/test_transformations.py::test_stochastic_swap_noise[0.7]
/var/jenkins_home/.local/lib/python3.8/site-packages/keras/backend.py:6089: UserWarning: tf.keras.backend.random_binomial is deprecated, and will be removed in a future version.Please use tf.keras.backend.random_bernoulli instead.
warnings.warn('tf.keras.backend.random_binomial is deprecated, '

tests/torch/block/test_mlp.py::test_mlp_block
/var/jenkins_home/workspace/merlin_models/models/tests/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()}

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/tf/test_core.py::test_block_to_model - ModuleNotFoundError: No m...
FAILED tests/tf/test_core.py::test_model_from_block - ModuleNotFoundError: No...
FAILED tests/tf/test_core.py::test_block_with_input_to_model - ModuleNotFound...
FAILED tests/tf/blocks/test_mlp.py::test_mlp_model_save[True] - ModuleNotFoun...
====== 4 failed, 362 passed, 9 skipped, 91 warnings in 562.37s (0:09:22) =======
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/jenkins4999798113812696616.sh

Comment on lines +50 to +51
TODO: Make sure it can link to the Schema & Tags
TODO: Link to tutorial
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we just remove this for now (or make a comment instead of a TODO in the docstring?)

Suggested change
TODO: Make sure it can link to the Schema & Tags
TODO: Link to tutorial

The tag to select item features, by default `Tags.ITEM`
The tag to select the item feature, by default `Tags.ITEM`
embeddings_initializers: Dict[str, Callable[[Any], None]]
TODO: List different popular initializers, and how to provide them. Type-hint is wrong now.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
TODO: List different popular initializers, and how to provide them. Type-hint is wrong now.

@@ -1,19 +0,0 @@
from typing import List, Optional, Union
Copy link
Member

@benfred benfred Apr 5, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this file is still relied on in places like

from merlin.models.tf.models.utils import parse_prediction_tasks

@viswa-nvidia viswa-nvidia added epic? This ticket is not mapped to a roadmap epic and removed epic? This ticket is not mapped to a roadmap epic labels Apr 29, 2022
@viswa-nvidia
Copy link

Moved to arbitration. Not clear how this maps to the roadmap . @marcromeyn , please clarify.

1 similar comment
@viswa-nvidia
Copy link

Moved to arbitration. Not clear how this maps to the roadmap . @marcromeyn , please clarify.

@viswa-nvidia viswa-nvidia added the documentation Improvements or additions to documentation label Aug 29, 2022
@marcromeyn marcromeyn modified the milestones: Merlin 22.10, Merlin 22.11 Oct 10, 2022
@bschifferer
Copy link
Contributor

@marcromeyn is this PR still relevant? Are you active working on it? Can we close it OR move it to need prioritization/clarification?

@viswa-nvidia
Copy link

We have a new API so this one can be closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Address TODO comments in retrieval.py and ranking.py.

6 participants