AttributeError: объект «implicit.evaluation._memoryviewslice» не имеет атрибута «dtype»Python

Программы на Python
Ответить
Anonymous
 AttributeError: объект «implicit.evaluation._memoryviewslice» не имеет атрибута «dtype»

Сообщение Anonymous »

Я обучил модель ALS, используя неявный пакет с поддержкой графического процессора. Однако при оценке модели с помощью функции ndcg_at_k я столкнулся со следующей ошибкой:

Код: Выделить всё

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)

Код: Выделить всё

AttributeError: 'implicit.evaluation._memoryviewslice' object has no attribute 'dtype'
Сведения об среде:

[*]неявно: 0.7.2 (собрано из исходного кода)
[*]Python: 3.11.2
[*]CUDA: 12.3
[*]ОС: Debian GNU/Linux 12

Попытки решения:
  • Я попробовал преобразовать модель в процессор, но это не решило проблему.
Вопрос:
Как устранить эту ошибку AttributeError при оценке модели с помощью неявной библиотеки?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -attribute
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»