TypeError: Не удалось преобразовать объект типа <class 'tenorflow.python.framework.sparse_tensor.SparseTensor'> в Tensor - PullRequest
3 голосов
/ 01 апреля 2019

Я пытаюсь преобразовать входные объекты GraphSAGE из плотной матрицы с малым количеством элементов в разреженную матрицу.Алгоритм берет пустую матрицу и преобразует ее в переменную TF следующим образом:

self.features = tf.sparse.SparseTensor(indices= features[0],values = features[1],dense_shape=features[2]) 

Код, соответствующий плотной матрице, показан ниже:

hidden = [tf.nn.embedding_lookup(input_features, node_samples) for node_samples in samples]

Я пытался переписатьэто для разреженной матрицы со следующим кодом:

hidden = [tf.nn.embedding_lookup_sparse(input_features, sp_ids= tf.contrib.layers.dense_to_sparse(node_samples),sp_weights=None) for node_samples in samples]

Когда я пытаюсь это сделать, я сталкиваюсь со следующей ошибкой:

 TypeError: Failed to convert object of type <class 'tensorflow.python.framework.sparse_tensor.SparseTensor'> to Tensor. Contents: SparseTensor(indices=Tensor("SparseTensor/indices:0", shape=(1078003, 2), dtype=int64), values=Tensor("SparseTensor/values:0", shape=(1078003,), dtype=float32), dense_shape=Tensor("SparseTensor/dense_shape:0", shape=(2,), dtype=int64)). Consider casting elements to a supported type.

Есть идеи для отладки?Версия TF - «1.13.1»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...