#tensorflow2.0 #recommendation-engine
Вопрос:
Я использую библиотеку tensorflow-рекомендателей для создания рекомендателя, но когда я пытаюсь использовать смешанную точность, при проверке возникает ошибка:
TypeError: Tensors in list passed to 'values' of 'ConcatV2' Op have types [float32, float16] that don't all match.
Стоит отметить, что модель успешно обучается, проблема возникает при попытке проверки.
На рисунке показано, как определяется модель пользователя. Модель изделия аналогична. Модель с двумя башнями-это:
class two_tower_model(tfrs.Model):
def __init__(self, user_model, item_model, items_dataset):
super().__init__()
self.user_model = user_model
self.item_model = item_model
self.items_dataset = items_dataset
self.task = tfrs.tasks.Retrieval(
metrics=tfrs.metrics.FactorizedTopK(
candidates=self.items_dataset.batch(2048).map(item_model)))
def compute_loss(self, features, training=False):
user_embeddings = self.user_model({feature: features[feature] for feature in ["USER_EMBEDDING", "event_data"]})
item_embeddings = self.item_model({feature: features[feature]
for feature
in ["ITE_ITEM_ID", "ITE_DOM_DOMAIN_ID", "CAT_CATEG_ID", "ITE_ITEM_TITLE"]})
return self.task(user_embeddings, item_embeddings, compute_metrics=not training)
Я не знаю, связана ли проблема со строительством модели или с политикой смешанной точности. Я использую TFv2.3.1 и TFRSv0.3.2.
Заранее благодарю.