Hello,
I was able to successfully run pip install scann
in my google colab notebook, but I am still getting an error when trying to use the tfrs.layers.factorized_top_k.ScaNN()
function:
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/
Collecting scann
Downloading scann-1.2.7-cp37-cp37m-manylinux_2_27_x86_64.whl (11.2 MB)
|████████████████████████████████| 11.2 MB 6.6 MB/s
Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from scann) (1.21.6)
Requirement already satisfied: six in /usr/local/lib/python3.7/dist-packages (from scann) (1.15.0)
Requirement already satisfied: tensorflow~=2.9.0 in /usr/local/lib/python3.7/dist-packages (from scann) (2.9.1)
...
Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.7/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.10,>=2.9->tensorflow~=2.9.0->scann) (3.2.0)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /usr/local/lib/python3.7/dist-packages (from packaging->tensorflow~=2.9.0->scann) (3.0.9)
Installing collected packages: scann
Successfully installed scann-1.2.7
Output from scann = tfrs.layers.factorized_top_k.ScaNN(num_reordering_candidates=100, query_model=model._query_model)
:
ImportError Traceback (most recent call last)
<ipython-input-20-7c16542b601a> in <module>
----> 1 scann = tfrs.layers.factorized_top_k.ScaNN(num_reordering_candidates=100, query_model=model._query_model)
2 # recommends movies out of the entire movies dataset.
3 scann.index_from_dataset(
4 tf.data.Dataset.zip((items.batch(100), items.batch(100).map(model._candidate_model)))
5 )
/usr/local/lib/python3.7/dist-packages/tensorflow_recommenders/layers/factorized_top_k.py in __init__(self, query_model, k, distance_measure, num_leaves, num_leaves_to_search, training_iterations, dimensions_per_block, num_reordering_candidates, parallelize_batch_searches, name)
655 if not _HAVE_SCANN:
656 raise ImportError(
--> 657 "The scann library is not present. Please install it using "
658 "`pip install scann` to use the ScaNN layer.")
659
ImportError: The scann library is not present. Please install it using `pip install scann` to use the ScaNN layer.
I must be missing something simple. Help.