Я пытаюсь преобразовать входные объекты 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»