pecos
pecos copied to clipboard
XR-Transformer prediction step
After training the XTransformer model, I have been trying to generate the predictions as follows:
test_texts, test_texts_rpr = ...
# test_texts: list of 34681 texts
# test_text_rpr: csr_matrix of shape (34681, 52172)
model = self._load_model(...) # XTransformer.load("model")
prediction = model.predict(test_texts, test_texts_rpr)
however, I end up getting the following error:
[2022-08-01 04:51:11,280][pecos.xmc.xtransformer.model][INFO] - Full model loaded from resource/model_checkpoint/XR-TFMR_EURLEX57K_0
[2022-08-01 04:51:11,280][pecos.utils.torch_util][INFO] - Setting device to cuda, number of active GPUs: 1
[2022-08-01 04:51:11,947][pecos.xmc.xtransformer.matcher][INFO] - ***** Encoding data len=34681 truncation=128*****
[2022-08-01 04:51:14,547][pecos.xmc.xtransformer.matcher][INFO] - ***** Finished with time cost=2.5997776985168457 *****
[2022-08-01 04:51:14,547][pecos.xmc.xtransformer.matcher][INFO] - Predict on input text tensors(torch.Size([34681, 128]))
Error executing job with overrides: ['tasks=[predict]', 'data.folds=[0]']
Traceback (most recent call last):
File "main.py", line 29, in perform_tasks
predict(params)
File "main.py", line 15, in predict
predict_helper.perform_predict()
File "/home/celso/projects/XMTC-Baselines/source/helper/PredictHelper.py", line 68, in perform_predict
prediction = model.predict(texts, texts_rpr)
File "/home/celso/projects/venvs/XMTC-Baselines/lib/python3.8/site-packages/pecos/xmc/xtransformer/model.py", line 588, in predict
pred_csr = self.concat_model.predict(
File "/home/celso/projects/venvs/XMTC-Baselines/lib/python3.8/site-packages/pecos/xmc/xlinear/model.py", line 503, in predict
Y_pred = self.model.predict(
File "/home/celso/projects/venvs/XMTC-Baselines/lib/python3.8/site-packages/pecos/xmc/base.py", line 1491, in predict
assert X.shape[1] == self.nr_features
AssertionError
Must X
and Xt
have the same number of features?
Trying to resolve the above error, I ensured that both X
(training step csr_matrix) and Xt
(prediction step csr_matrix) have the same number of features.
However, the following error has now occurred:
File "main.py", line 29, in perform_tasks
predict(params)
File "main.py", line 15, in predict
predict_helper.perform_predict()
File "/home/celso/projects/XMTC-Baselines/source/helper/PredictHelper.py", line 70, in perform_predict
prediction = model.predict(texts, texts_rpr)
File "/home/celso/projects/venvs/XMTC-Baselines/lib/python3.8/site-packages/pecos/xmc/xtransformer/model.py", line 588, in predict
pred_csr = self.concat_model.predict(
File "/home/celso/projects/venvs/XMTC-Baselines/lib/python3.8/site-packages/pecos/xmc/xlinear/model.py", line 503, in predict
Y_pred = self.model.predict(
File "/home/celso/projects/venvs/XMTC-Baselines/lib/python3.8/site-packages/pecos/xmc/base.py", line 1557, in predict
pred_csr = cur_model.predict(
File "/home/celso/projects/venvs/XMTC-Baselines/lib/python3.8/site-packages/pecos/xmc/base.py", line 853, in predict
clib.xlinear_single_layer_predict(
File "/home/celso/projects/venvs/XMTC-Baselines/lib/python3.8/site-packages/pecos/core/base.py", line 864, in xlinear_single_layer_predict
raise ValueError("Query matrix does not have sorted indices!")
ValueError: Query matrix does not have sorted indices!
How can I get around this error?
Hi @celsofranssa, as the error indicates, your input sparse matrices need to have sorted indices.