TypeError:无法将<class'tensorflow.python.framework.sparse_tensor.sparsetensor'=“”>类型的对象转换为Tensor

时间:2019-04-01 19:30:13

标签: python tensorflow sparse-matrix embedding-lookup

我正在尝试将GraphSAGE的输入特征从一个稀疏的密集矩阵转换为一个稀疏矩阵。 该算法采用一个numpy矩阵,并将其转换为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”

0 个答案:

没有答案