AttributeError: Das Objekt „implicit.evaluation._memoryviewslice“ hat kein Attribut „dtype“.Python

Python-Programme
Guest
 AttributeError: Das Objekt „implicit.evaluation._memoryviewslice“ hat kein Attribut „dtype“.

Post by Guest »

Ich habe ein ALS-Modell mithilfe des impliziten Pakets mit GPU-Unterstützung trainiert. Bei der Auswertung des Modells mit der Funktion ndcg_at_k ist jedoch der folgende Fehler aufgetreten:

Code: Select all

import os
import random
import pandas as pd
from scipy.sparse import csr_matrix
from implicit.evaluation import train_test_split, ndcg_at_k, mean_average_precision_at_k
from implicit.gpu.als import AlternatingLeastSquares

os.environ['OPENBLAS_NUM_THREADS']="1"
os.environ['CUDA_VISIBLE_DEVICES']="0"

# init random data
n_actions = 100000
max_uid = 100000
max_action_id = 10000

df = pd.DataFrame(data={
"user_id" : [random.randint(1, max_uid) for i in range(0, n_actions)],
"action" : [random.randint(1, max_action_id) for i in range(0, n_actions)],
"impression" : [1 for i in range(0, n_actions)]
})

# convert to sparse format
user_rows = [uid for uid in df.user_id.tolist()]
query_cols = [st for st in df.action.tolist()]
qvecs = csr_matrix((df.impression, (user_rows, query_cols)))

# train test split and model training
train_user_items, test_user_items = train_test_split(qvecs, train_percentage=0.9, random_state=19)

model = AlternatingLeastSquares(factors=130, regularization=0.05, alpha=1.0, calculate_training_loss=True)
model.fit(train_user_items)

# calculate ndcg
ndcg = ndcg_at_k(model, train_user_items, test_user_items, K=14, show_progress=True, num_threads=1)n.tolist()]
qvecs = csr_matrix((df.impression, (user_rows, query_cols)))

# train test split and model training
train_user_items, test_user_items = train_test_split(qvecs, train_percentage=0.9, random_state=19)

model = AlternatingLeastSquares(factors=130, regularization=0.05, alpha=1.0, calculate_training_loss=True)
model.fit(train_user_items)

# calculate ndcg
ndcg = ndcg_at_k(model, train_user_items, test_user_items, K=14, show_progress=True, num_threads=1)

Code: Select all

AttributeError: 'implicit.evaluation._memoryviewslice' object has no attribute 'dtype'
Umgebungsdetails:

[*]implizit: 0.7.2 (aus dem Quellcode erstellt)
[*]Python: 3.11.2
[*]CUDA: 12.3
[*]Betriebssystem: Debian GNU/Linux 12

Lösungsversuche:
  • Ich habe versucht, das Modell in CPU zu konvertieren, aber das Problem wurde dadurch nicht behoben.
Frage:
Wie kann ich diesen AttributeError beheben, wenn ich das Modell mit der impliziten Bibliothek auswerte?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post