Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Add run timestamp to data #415

Merged
merged 1 commit into from
Jun 24, 2022

Conversation

mikemckiernan
Copy link
Member

@mikemckiernan mikemckiernan commented Jun 24, 2022

The timestamp seems important if this is to work with nightly containers and harmless for the production containers.

Small linting changes too.

This was initiated as part of #388.

@mikemckiernan mikemckiernan self-assigned this Jun 24, 2022
@mikemckiernan mikemckiernan added the documentation Improvements or additions to documentation label Jun 24, 2022
@mikemckiernan mikemckiernan added this to the Merlin 22.07 milestone Jun 24, 2022
@nvidia-merlin-bot
Copy link
Contributor

Click to view CI Results
GitHub pull request #415 of commit 8164ebec5bf5089ac546ad3936f4ec1d825e0045, no merge conflicts.
Running as SYSTEM
Setting status of 8164ebec5bf5089ac546ad3936f4ec1d825e0045 to PENDING with url https://10.20.13.93:8080/job/merlin_merlin/200/console and message: 'Pending'
Using context: Jenkins
Building on master in workspace /var/jenkins_home/workspace/merlin_merlin
using credential systems-login
 > 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/Merlin # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/Merlin
 > git --version # timeout=10
using GIT_ASKPASS to set credentials login for merlin-systems
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/Merlin +refs/pull/415/*:refs/remotes/origin/pr/415/* # timeout=10
 > git rev-parse 8164ebec5bf5089ac546ad3936f4ec1d825e0045^{commit} # timeout=10
Checking out Revision 8164ebec5bf5089ac546ad3936f4ec1d825e0045 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 8164ebec5bf5089ac546ad3936f4ec1d825e0045 # timeout=10
Commit message: "Add run timestamp to data"
 > git rev-list --no-walk 511f01d799bc585e7317226429260dea96fde61f # timeout=10
[merlin_merlin] $ /bin/bash /tmp/jenkins10333641494730659327.sh
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.2, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/merlin_merlin/merlin
plugins: anyio-3.5.0, xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 2 items

tests/unit/test_version.py . [ 50%]
tests/unit/examples/test_building_deploying_multi_stage_RecSys.py F [100%]

=================================== FAILURES ===================================
__________________________________ test_func ___________________________________

def test_func():
    with testbook(
        REPO_ROOT
        / "examples"
        / "Building-and-deploying-multi-stage-RecSys"
        / "01-Building-Recommender-Systems-with-Merlin.ipynb",
        execute=False,
    ) as tb1:
        tb1.inject(
            """
            import os
            os.environ["DATA_FOLDER"] = "/tmp/data/"
            os.environ["NUM_ROWS"] = "10000"
            os.system("mkdir -p /tmp/examples")
            os.environ["BASE_DIR"] = "/tmp/examples/"
            """
        )
      tb1.execute()

tests/unit/examples/test_building_deploying_multi_stage_RecSys.py:31:


../../../.local/lib/python3.8/site-packages/testbook/client.py:147: in execute
super().execute_cell(cell, index)
../../../.local/lib/python3.8/site-packages/nbclient/util.py:84: in wrapped
return just_run(coro(*args, **kwargs))
../../../.local/lib/python3.8/site-packages/nbclient/util.py:62: in just_run
return loop.run_until_complete(coro)
/usr/lib/python3.8/asyncio/base_events.py:616: in run_until_complete
return future.result()
../../../.local/lib/python3.8/site-packages/nbclient/client.py:965: in async_execute_cell
await self._check_raise_for_error(cell, cell_index, exec_reply)


self = <testbook.client.TestbookNotebookClient object at 0x7f1abb2d4400>
cell = {'cell_type': 'code', 'execution_count': 4, 'id': '08cdbfcc', 'metadata': {'execution': {'iopub.status.busy': '2022-06...\n# for running this example on CPU, comment out the line below\nos.environ["TF_GPU_ALLOCATOR"] = "cuda_malloc_async"'}
cell_index = 11
exec_reply = {'buffers': [], 'content': {'ename': 'CUDARuntimeError', 'engine_info': {'engine_id': -1, 'engine_uuid': 'bc1f5385-f9f...e, 'engine': 'bc1f5385-f9f8-4296-8d6b-dd9cafd1b714', 'started': '2022-06-24T15:01:45.010288Z', 'status': 'error'}, ...}

async def _check_raise_for_error(
    self, cell: NotebookNode, cell_index: int, exec_reply: t.Optional[t.Dict]
) -> None:

    if exec_reply is None:
        return None

    exec_reply_content = exec_reply['content']
    if exec_reply_content['status'] != 'error':
        return None

    cell_allows_errors = (not self.force_raise_errors) and (
        self.allow_errors
        or exec_reply_content.get('ename') in self.allow_error_names
        or "raises-exception" in cell.metadata.get("tags", [])
    )
    await run_hook(self.on_cell_error, cell=cell, cell_index=cell_index)
    if not cell_allows_errors:
      raise CellExecutionError.from_cell_and_msg(cell, exec_reply_content)

E nbclient.exceptions.CellExecutionError: An error occurred while executing the following cell:
E ------------------
E import os
E
E from nvtabular.ops import (
E Categorify,
E TagAsUserID,
E TagAsItemID,
E TagAsItemFeatures,
E TagAsUserFeatures,
E AddMetadata,
E Filter,
E )
E
E from merlin.schema.tags import Tags
E
E import merlin.models.tf as mm
E from merlin.io.dataset import Dataset
E import tensorflow as tf
E
E # for running this example on CPU, comment out the line below
E os.environ["TF_GPU_ALLOCATOR"] = "cuda_malloc_async"
E ------------------
E
E �[0;31m---------------------------------------------------------------------------�[0m
E �[0;31mCUDARuntimeError�[0m Traceback (most recent call last)
E Input �[0;32mIn [4]�[0m, in �[0;36m<cell line: 3>�[0;34m()�[0m
E �[1;32m 1�[0m �[38;5;28;01mimport�[39;00m �[38;5;21;01mos�[39;00m
E �[0;32m----> 3�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mnvtabular�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mops�[39;00m �[38;5;28;01mimport�[39;00m (
E �[1;32m 4�[0m Categorify,
E �[1;32m 5�[0m TagAsUserID,
E �[1;32m 6�[0m TagAsItemID,
E �[1;32m 7�[0m TagAsItemFeatures,
E �[1;32m 8�[0m TagAsUserFeatures,
E �[1;32m 9�[0m AddMetadata,
E �[1;32m 10�[0m Filter,
E �[1;32m 11�[0m )
E �[1;32m 13�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mschema�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mtags�[39;00m �[38;5;28;01mimport�[39;00m Tags
E �[1;32m 15�[0m �[38;5;28;01mimport�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mmodels�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mtf�[39;00m �[38;5;28;01mas�[39;00m �[38;5;21;01mmm�[39;00m
E
E File �[0;32m~/.local/lib/python3.8/site-packages/nvtabular/init.py:19�[0m, in �[0;36m�[0;34m�[0m
E �[1;32m 16�[0m �[38;5;28;01mimport�[39;00m �[38;5;21;01mwarnings�[39;00m
E �[1;32m 18�[0m �[38;5;66;03m# this is to mimic the previous API, but all of these should probably be removed�[39;00m
E �[0;32m---> 19�[0m �[38;5;28;01mimport�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m �[38;5;28;01mas�[39;00m �[38;5;21;01mgraph�[39;00m �[38;5;66;03m# noqa�[39;00m
E �[1;32m 20�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m �[38;5;28;01mimport�[39;00m io
E �[1;32m 21�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mcore�[39;00m �[38;5;28;01mimport�[39;00m dispatch, utils �[38;5;66;03m# noqa�[39;00m
E
E File �[0;32m~/.local/lib/python3.8/site-packages/merlin/dag/init.py:19�[0m, in �[0;36m�[0;34m�[0m
E �[1;32m 1�[0m �[38;5;66;03m#�[39;00m
E �[1;32m 2�[0m �[38;5;66;03m# Copyright (c) 2022, NVIDIA CORPORATION.�[39;00m
E �[1;32m 3�[0m �[38;5;66;03m#�[39;00m
E �[0;32m (...)�[0m
E �[1;32m 16�[0m
E �[1;32m 17�[0m �[38;5;66;03m# flake8: noqa�[39;00m
E �[1;32m 18�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mbase_operator�[39;00m �[38;5;28;01mimport�[39;00m BaseOperator, Supports
E �[0;32m---> 19�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mgraph�[39;00m �[38;5;28;01mimport�[39;00m Graph
E �[1;32m 20�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mnode�[39;00m �[38;5;28;01mimport�[39;00m Node, iter_nodes, postorder_iter_nodes, preorder_iter_nodes
E �[1;32m 21�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mselector�[39;00m �[38;5;28;01mimport�[39;00m ColumnSelector
E
E File �[0;32m~/.local/lib/python3.8/site-packages/merlin/dag/graph.py:20�[0m, in �[0;36m�[0;34m�[0m
E �[1;32m 17�[0m �[38;5;28;01mimport�[39;00m �[38;5;21;01mlogging�[39;00m
E �[1;32m 18�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mcollections�[39;00m �[38;5;28;01mimport�[39;00m deque
E �[0;32m---> 20�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mnode�[39;00m �[38;5;28;01mimport�[39;00m (
E �[1;32m 21�[0m Node,
E �[1;32m 22�[0m _combine_schemas,
E �[1;32m 23�[0m iter_nodes,
E �[1;32m 24�[0m postorder_iter_nodes,
E �[1;32m 25�[0m preorder_iter_nodes,
E �[1;32m 26�[0m )
E �[1;32m 27�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mschema�[39;00m �[38;5;28;01mimport�[39;00m Schema
E �[1;32m 29�[0m LOG �[38;5;241m=�[39m logging�[38;5;241m.�[39mgetLogger(�[38;5;124m"�[39m�[38;5;124mmerlin�[39m�[38;5;124m"�[39m)
E
E File �[0;32m~/.local/lib/python3.8/site-packages/merlin/dag/node.py:20�[0m, in �[0;36m�[0;34m�[0m
E �[1;32m 17�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mtyping�[39;00m �[38;5;28;01mimport�[39;00m List, Union
E �[1;32m 19�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mbase_operator�[39;00m �[38;5;28;01mimport�[39;00m BaseOperator
E �[0;32m---> 20�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mops�[39;00m �[38;5;28;01mimport�[39;00m ConcatColumns, SelectionOp, SubsetColumns, SubtractionOp
E �[1;32m 21�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mselector�[39;00m �[38;5;28;01mimport�[39;00m ColumnSelector
E �[1;32m 22�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mschema�[39;00m �[38;5;28;01mimport�[39;00m Schema
E
E File �[0;32m~/.local/lib/python3.8/site-packages/merlin/dag/ops/init.py:18�[0m, in �[0;36m�[0;34m�[0m
E �[1;32m 1�[0m �[38;5;66;03m#�[39;00m
E �[1;32m 2�[0m �[38;5;66;03m# Copyright (c) 2022, NVIDIA CORPORATION.�[39;00m
E �[1;32m 3�[0m �[38;5;66;03m#�[39;00m
E �[0;32m (...)�[0m
E �[1;32m 16�[0m �[38;5;66;03m# alias submodules here to avoid breaking everything with moving to submodules�[39;00m
E �[1;32m 17�[0m �[38;5;66;03m# flake8: noqa�[39;00m
E �[0;32m---> 18�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mops�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mconcat_columns�[39;00m �[38;5;28;01mimport�[39;00m ConcatColumns
E �[1;32m 19�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mops�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mselection�[39;00m �[38;5;28;01mimport�[39;00m SelectionOp
E �[1;32m 20�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mops�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01msubset_columns�[39;00m �[38;5;28;01mimport�[39;00m SubsetColumns
E
E File �[0;32m~/.local/lib/python3.8/site-packages/merlin/dag/ops/concat_columns.py:17�[0m, in �[0;36m�[0;34m�[0m
E �[1;32m 1�[0m �[38;5;66;03m#�[39;00m
E �[1;32m 2�[0m �[38;5;66;03m# Copyright (c) 2022, NVIDIA CORPORATION.�[39;00m
E �[1;32m 3�[0m �[38;5;66;03m#�[39;00m
E �[0;32m (...)�[0m
E �[1;32m 14�[0m �[38;5;66;03m# limitations under the License.�[39;00m
E �[1;32m 15�[0m �[38;5;66;03m#�[39;00m
E �[0;32m---> 17�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mcore�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdispatch�[39;00m �[38;5;28;01mimport�[39;00m DataFrameType
E �[1;32m 18�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mbase_operator�[39;00m �[38;5;28;01mimport�[39;00m BaseOperator
E �[1;32m 19�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mmerlin�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mdag�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mselector�[39;00m �[38;5;28;01mimport�[39;00m ColumnSelector
E
E File �[0;32m~/.local/lib/python3.8/site-packages/merlin/core/dispatch.py:35�[0m, in �[0;36m�[0;34m�[0m
E �[1;32m 33�[0m �[38;5;28;01mif�[39;00m HAS_GPU:
E �[1;32m 34�[0m �[38;5;28;01mtry�[39;00m:
E �[0;32m---> 35�[0m �[38;5;28;01mimport�[39;00m �[38;5;21;01mcudf�[39;00m
E �[1;32m 36�[0m �[38;5;28;01mimport�[39;00m �[38;5;21;01mcupy�[39;00m �[38;5;28;01mas�[39;00m �[38;5;21;01mcp�[39;00m
E �[1;32m 37�[0m �[38;5;28;01mimport�[39;00m �[38;5;21;01mdask_cudf�[39;00m
E
E File �[0;32m/usr/local/lib/python3.8/dist-packages/cudf/init.py:5�[0m, in �[0;36m�[0;34m�[0m
E �[1;32m 1�[0m �[38;5;66;03m# Copyright (c) 2018-2022, NVIDIA CORPORATION.�[39;00m
E �[1;32m 3�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mcudf�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mutils�[39;00m�[38;5;21;01m.�[39;00m�[38;5;21;01mgpu_utils�[39;00m �[38;5;28;01mimport�[39;00m validate_setup
E �[0;32m----> 5�[0m �[43mvalidate_setup�[49m�[43m(�[49m�[43m)�[49m
E �[1;32m 7�[0m �[38;5;28;01mimport�[39;00m �[38;5;21;01mcupy�[39;00m
E �[1;32m 8�[0m �[38;5;28;01mfrom�[39;00m �[38;5;21;01mnumba�[39;00m �[38;5;28;01mimport�[39;00m config �[38;5;28;01mas�[39;00m numba_config, cuda
E
E File �[0;32m/usr/local/lib/python3.8/dist-packages/cudf/utils/gpu_utils.py:55�[0m, in �[0;36mvalidate_setup�[0;34m()�[0m
E �[1;32m 53�[0m �[38;5;28;01mexcept�[39;00m CUDARuntimeError �[38;5;28;01mas�[39;00m e:
E �[1;32m 54�[0m �[38;5;28;01mif�[39;00m e�[38;5;241m.�[39mstatus �[38;5;129;01min�[39;00m notify_caller_errors:
E �[0;32m---> 55�[0m �[38;5;28;01mraise�[39;00m e
E �[1;32m 56�[0m �[38;5;66;03m# If there is no GPU detected, set gpus_count to -1�[39;00m
E �[1;32m 57�[0m gpus_count �[38;5;241m=�[39m �[38;5;241m-�[39m�[38;5;241m1�[39m
E
E File �[0;32m/usr/local/lib/python3.8/dist-packages/cudf/utils/gpu_utils.py:52�[0m, in �[0;36mvalidate_setup�[0;34m()�[0m
E �[1;32m 31�[0m notify_caller_errors �[38;5;241m=�[39m {
E �[1;32m 32�[0m cudaError_t�[38;5;241m.�[39mcudaErrorInitializationError,
E �[1;32m 33�[0m cudaError_t�[38;5;241m.�[39mcudaErrorInsufficientDriver,
E �[0;32m (...)�[0m
E �[1;32m 48�[0m cudaError_t�[38;5;241m.�[39mcudaErrorApiFailureBase,
E �[1;32m 49�[0m }
E �[1;32m 51�[0m �[38;5;28;01mtry�[39;00m:
E �[0;32m---> 52�[0m gpus_count �[38;5;241m=�[39m �[43mgetDeviceCount�[49m�[43m(�[49m�[43m)�[49m
E �[1;32m 53�[0m �[38;5;28;01mexcept�[39;00m CUDARuntimeError �[38;5;28;01mas�[39;00m e:
E �[1;32m 54�[0m �[38;5;28;01mif�[39;00m e�[38;5;241m.�[39mstatus �[38;5;129;01min�[39;00m notify_caller_errors:
E
E File �[0;32m/usr/local/lib/python3.8/dist-packages/rmm/_cuda/gpu.py:101�[0m, in �[0;36mgetDeviceCount�[0;34m()�[0m
E �[1;32m 99�[0m status, count �[38;5;241m=�[39m cudart�[38;5;241m.�[39mcudaGetDeviceCount()
E �[1;32m 100�[0m �[38;5;28;01mif�[39;00m status �[38;5;241m!=�[39m cudart�[38;5;241m.�[39mcudaError_t�[38;5;241m.�[39mcudaSuccess:
E �[0;32m--> 101�[0m �[38;5;28;01mraise�[39;00m CUDARuntimeError(status)
E �[1;32m 102�[0m �[38;5;28;01mreturn�[39;00m count
E
E �[0;31mCUDARuntimeError�[0m: cudaErrorInitializationError: initialization error
E CUDARuntimeError: cudaErrorInitializationError: initialization error

../../../.local/lib/python3.8/site-packages/nbclient/client.py:862: CellExecutionError
=========================== short test summary info ============================
FAILED tests/unit/examples/test_building_deploying_multi_stage_RecSys.py::test_func
========================= 1 failed, 1 passed in 7.53s ==========================
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://github.com/gitapi/repos/NVIDIA-Merlin/Merlin/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log"
[merlin_merlin] $ /bin/bash /tmp/jenkins5639977875058214676.sh

@github-actions
Copy link

Documentation preview

https://nvidia-merlin.github.io/Merlin/review/pr-415

Copy link
Member

@benfred benfred left a comment

Choose a reason for hiding this comment

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

lgtm!

min-similarity-lines=20
Copy link
Member

Choose a reason for hiding this comment

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

good catch

@mikemckiernan mikemckiernan merged commit d1773e3 into NVIDIA-Merlin:main Jun 24, 2022
@mikemckiernan mikemckiernan deleted the data-merlin branch June 24, 2022 17:16
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.

3 participants