Quickstart

Let’s start by installing Rexify

[1]:
!pip install rexify
Requirement already satisfied: rexify in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (0.0.2)
Requirement already satisfied: kfp<2.0.0,>=1.8.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from rexify) (1.8.13)
Requirement already satisfied: scikit-learn<2.0.0,>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from rexify) (1.1.2)
Requirement already satisfied: tensorflow<3.0.0,>=2.6.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from rexify) (2.9.1)
Requirement already satisfied: tensorflow_recommenders>=0.3.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from rexify) (0.7.0)
Requirement already satisfied: google-auth<2,>=1.6.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (1.35.0)
Requirement already satisfied: jsonschema<4,>=3.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (3.2.0)
Requirement already satisfied: protobuf<4,>=3.13.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (3.19.4)
Requirement already satisfied: pydantic<2,>=1.8.2 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (1.9.2)
Requirement already satisfied: uritemplate<4,>=3.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (3.0.1)
Requirement already satisfied: kubernetes<19,>=8.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (18.20.0)
Requirement already satisfied: tabulate<1,>=0.8.6 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (0.8.10)
Requirement already satisfied: cloudpickle<3,>=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (2.1.0)
Requirement already satisfied: requests-toolbelt<1,>=0.8.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (0.9.1)
Requirement already satisfied: google-api-python-client<2,>=1.7.8 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (1.12.11)
Requirement already satisfied: google-cloud-storage<2,>=1.20.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (1.44.0)
Requirement already satisfied: google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (2.8.2)
Requirement already satisfied: PyYAML<6,>=5.3 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (5.4.1)
Requirement already satisfied: docstring-parser<1,>=0.7.3 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (0.14.1)
Requirement already satisfied: strip-hints<1,>=0.1.8 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (0.1.10)
Requirement already satisfied: typer<1.0,>=0.3.2 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (0.6.1)
Requirement already satisfied: click<9,>=7.1.2 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (8.1.3)
Requirement already satisfied: fire<1,>=0.3.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (0.4.0)
Requirement already satisfied: kfp-server-api<2.0.0,>=1.1.2 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (1.8.4)
Requirement already satisfied: absl-py<2,>=0.9 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (1.2.0)
Requirement already satisfied: Deprecated<2,>=1.2.7 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (1.2.13)
Requirement already satisfied: kfp-pipeline-spec<0.2.0,>=0.1.14 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp<2.0.0,>=1.8.0->rexify) (0.1.16)
Requirement already satisfied: joblib>=1.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from scikit-learn<2.0.0,>=1.0.0->rexify) (1.1.0)
Requirement already satisfied: scipy>=1.3.2 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from scikit-learn<2.0.0,>=1.0.0->rexify) (1.9.0)
Requirement already satisfied: threadpoolctl>=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from scikit-learn<2.0.0,>=1.0.0->rexify) (3.1.0)
Requirement already satisfied: numpy>=1.17.3 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from scikit-learn<2.0.0,>=1.0.0->rexify) (1.23.2)
Requirement already satisfied: packaging in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (21.3)
Requirement already satisfied: six>=1.12.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (1.16.0)
Requirement already satisfied: flatbuffers<2,>=1.12 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (1.12)
Requirement already satisfied: libclang>=13.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (14.0.6)
Requirement already satisfied: wrapt>=1.11.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (1.14.1)
Requirement already satisfied: tensorflow-estimator<2.10.0,>=2.9.0rc0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (2.9.0)
Requirement already satisfied: google-pasta>=0.1.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (0.2.0)
Requirement already satisfied: setuptools in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (58.2.0)
Requirement already satisfied: opt-einsum>=2.3.2 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (3.3.0)
Requirement already satisfied: grpcio<2.0,>=1.24.3 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (1.47.0)
Requirement already satisfied: gast<=0.4.0,>=0.2.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (0.4.0)
Requirement already satisfied: typing-extensions>=3.6.6 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (4.3.0)
Requirement already satisfied: keras<2.10.0,>=2.9.0rc0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (2.9.0)
Requirement already satisfied: tensorboard<2.10,>=2.9 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (2.9.1)
Requirement already satisfied: keras-preprocessing>=1.1.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (1.1.2)
Requirement already satisfied: astunparse>=1.6.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (1.6.3)
Requirement already satisfied: termcolor>=1.1.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (1.1.0)
Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (0.26.0)
Requirement already satisfied: h5py>=2.9.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorflow<3.0.0,>=2.6.0->rexify) (3.7.0)
Requirement already satisfied: wheel<1.0,>=0.23.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from astunparse>=1.6.0->tensorflow<3.0.0,>=2.6.0->rexify) (0.37.0)
Requirement already satisfied: requests<3.0.0dev,>=2.18.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5->kfp<2.0.0,>=1.8.0->rexify) (2.28.1)
Requirement already satisfied: googleapis-common-protos<2.0dev,>=1.56.2 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5->kfp<2.0.0,>=1.8.0->rexify) (1.56.4)
Requirement already satisfied: google-auth-httplib2>=0.0.3 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from google-api-python-client<2,>=1.7.8->kfp<2.0.0,>=1.8.0->rexify) (0.1.0)
Requirement already satisfied: httplib2<1dev,>=0.15.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from google-api-python-client<2,>=1.7.8->kfp<2.0.0,>=1.8.0->rexify) (0.20.4)
Requirement already satisfied: rsa<5,>=3.1.4 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from google-auth<2,>=1.6.1->kfp<2.0.0,>=1.8.0->rexify) (4.9)
Requirement already satisfied: cachetools<5.0,>=2.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from google-auth<2,>=1.6.1->kfp<2.0.0,>=1.8.0->rexify) (4.2.4)
Requirement already satisfied: pyasn1-modules>=0.2.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from google-auth<2,>=1.6.1->kfp<2.0.0,>=1.8.0->rexify) (0.2.8)
Requirement already satisfied: google-resumable-media<3.0dev,>=1.3.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from google-cloud-storage<2,>=1.20.0->kfp<2.0.0,>=1.8.0->rexify) (2.3.3)
Requirement already satisfied: google-cloud-core<3.0dev,>=1.6.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from google-cloud-storage<2,>=1.20.0->kfp<2.0.0,>=1.8.0->rexify) (2.3.2)
Requirement already satisfied: attrs>=17.4.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from jsonschema<4,>=3.0.1->kfp<2.0.0,>=1.8.0->rexify) (22.1.0)
Requirement already satisfied: pyrsistent>=0.14.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from jsonschema<4,>=3.0.1->kfp<2.0.0,>=1.8.0->rexify) (0.18.1)
Requirement already satisfied: python-dateutil in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp-server-api<2.0.0,>=1.1.2->kfp<2.0.0,>=1.8.0->rexify) (2.8.2)
Requirement already satisfied: urllib3>=1.15 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp-server-api<2.0.0,>=1.1.2->kfp<2.0.0,>=1.8.0->rexify) (1.26.11)
Requirement already satisfied: certifi in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kfp-server-api<2.0.0,>=1.1.2->kfp<2.0.0,>=1.8.0->rexify) (2022.6.15)
Requirement already satisfied: websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kubernetes<19,>=8.0.0->kfp<2.0.0,>=1.8.0->rexify) (1.3.3)
Requirement already satisfied: requests-oauthlib in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from kubernetes<19,>=8.0.0->kfp<2.0.0,>=1.8.0->rexify) (1.3.1)
Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorboard<2.10,>=2.9->tensorflow<3.0.0,>=2.6.0->rexify) (0.6.1)
Requirement already satisfied: markdown>=2.6.8 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorboard<2.10,>=2.9->tensorflow<3.0.0,>=2.6.0->rexify) (3.4.1)
Requirement already satisfied: werkzeug>=1.0.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorboard<2.10,>=2.9->tensorflow<3.0.0,>=2.6.0->rexify) (2.2.2)
Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorboard<2.10,>=2.9->tensorflow<3.0.0,>=2.6.0->rexify) (1.8.1)
Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from tensorboard<2.10,>=2.9->tensorflow<3.0.0,>=2.6.0->rexify) (0.4.6)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from packaging->tensorflow<3.0.0,>=2.6.0->rexify) (3.0.9)
Requirement already satisfied: google-crc32c<2.0dev,>=1.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from google-resumable-media<3.0dev,>=1.3.0->google-cloud-storage<2,>=1.20.0->kfp<2.0.0,>=1.8.0->rexify) (1.3.0)
Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from pyasn1-modules>=0.2.1->google-auth<2,>=1.6.1->kfp<2.0.0,>=1.8.0->rexify) (0.4.8)
Requirement already satisfied: idna<4,>=2.5 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5->kfp<2.0.0,>=1.8.0->rexify) (3.3)
Requirement already satisfied: charset-normalizer<3,>=2 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from requests<3.0.0dev,>=2.18.0->google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0dev,>=1.31.5->kfp<2.0.0,>=1.8.0->rexify) (2.1.0)
Requirement already satisfied: oauthlib>=3.0.0 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from requests-oauthlib->kubernetes<19,>=8.0.0->kfp<2.0.0,>=1.8.0->rexify) (3.2.0)
Requirement already satisfied: MarkupSafe>=2.1.1 in /home/docs/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages (from werkzeug>=1.0.1->tensorboard<2.10,>=2.9->tensorflow<3.0.0,>=2.6.0->rexify) (2.1.1)

Get some data:

[2]:
!mkdir data
!curl --get https://storage.googleapis.com/roostr-ratings-matrices/rexify/completions.csv > data/events.csv
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 55.9M  100 55.9M    0     0  43.4M      0  0:00:01  0:00:01 --:--:-- 43.3M
[3]:
import pandas as pd
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
Input In [3], in <cell line: 1>()
----> 1 import pandas as pd

ModuleNotFoundError: No module named 'pandas'
[4]:
events = pd.read_csv('data/events.csv')
events
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Input In [4], in <cell line: 1>()
----> 1 events = pd.read_csv('data/events.csv')
      2 events

NameError: name 'pd' is not defined

Next, we need to specify our schema:

[5]:
schema = {
    "user": {
        "account_id": "id",
    },
    "item": {
        "program_id": "id",
    },
    "context": {}
}

To preprocess our data, we can use the FeatureExtractor

[6]:
from rexify.features import FeatureExtractor
2022-08-16 11:07:20.545985: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2022-08-16 11:07:20.546020: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

We just need to pass it the schema, and it’s ready to roll out.

[7]:
feat = FeatureExtractor(schema=schema)

As a scikit-learn Transformer, it has two main methods: .fit() and .transform(). What .fit_transform() essentially does is: .fit().transform().

During .fit(), it will take the schema, and infer what the preprocessing should look like - what transformations it should apply to the data before it’s ready to be passed to the model. During .transform() it will apply those transformations, resulting in a numpy.array with the same number of rows as the original data.

[8]:
features = feat.fit_transform(events)
features
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Input In [8], in <cell line: 1>()
----> 1 features = feat.fit_transform(events)
      2 features

NameError: name 'events' is not defined

The .make_dataset() method converts the numpy array to a tf.data.Dataset with the format it’s expecting.

[9]:
dataset = feat.make_dataset(features).batch(512)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Input In [9], in <cell line: 1>()
----> 1 dataset = feat.make_dataset(features).batch(512)

NameError: name 'features' is not defined

We can now take our Recommender model and instantiate it.

During .fit, our FeatureExtractor also learns the right model parameters, so we don’t need to worry about them. They’re stored in the model_params property.

[10]:
from rexify.models import Recommender
[11]:
model = Recommender(**feat.model_params)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Input In [11], in <cell line: 1>()
----> 1 model = Recommender(**feat.model_params)

File ~/checkouts/readthedocs.org/user_builds/rexify/envs/docs/lib/python3.10/site-packages/rexify/features/extractor.py:65, in FeatureExtractor.model_params(self)
     63 @property
     64 def model_params(self):
---> 65     return self._model_params

AttributeError: 'FeatureExtractor' object has no attribute '_model_params'

Being a tensorflow.keras.Model itself, in order to fit it, we need to first compile it:

[12]:
model.compile()
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Input In [12], in <cell line: 1>()
----> 1 model.compile()

NameError: name 'model' is not defined

To fit it, all we need to do is pass our tf.data.Dataset:

[13]:
# model.fit(dataset)