Tensorflow 初始化张量

Tensorflow 初始化张量,tensorflow,sparse-matrix,Tensorflow,Sparse Matrix,我收到了错误信息 tf_coo = tf.SparseTensor(indices=np.array([[0, 0, 0, 1, 1, 2, 3, 9], [1, 4, 9, 9, 9, 9, 9, 9]]).T, values=[1, 2, 3, 5,1,1,1,1], shape=[10, 10]) JU不可

我收到了错误信息

tf_coo = tf.SparseTensor(indices=np.array([[0, 0, 0, 1, 1, 2, 3, 9],
                                            [1, 4, 9, 9, 9, 9, 9, 9]]).T,
                        values=[1, 2, 3, 5,1,1,1,1],
                        shape=[10, 10])
JU不可能为它们构造两个索引和值列表吗?我以前使用过coo_矩阵,它很好地解决了这个问题。有什么帮助吗

编辑: 我通过创建一个csr_矩阵解决了这个问题,我使用了函数sort_index(),然后将其转换为coo_矩阵。从那里我就创造了一个SparseTensor

InvalidArgumentError (see above for traceback): indices[4] = [1,9] is repeated
     [[Node: SparseToDense = SparseToDense[T=DT_INT32, Tindices=DT_INT64, validate_indices=true, _device="/job:localhost/replica:0/task:0/cpu:0"](SparseTensor/indices, SparseToDense/output_shape, SparseTensor/values, SparseToDense/default_value)]] 

只需在
索引中删除重复的
[1,9]

 tf.SparseTensor(indices= (coo_martix.row, coo_martix.col), values= coo_matrix.data, dense_shape=coo_martix.shape)

是的,但是我得到的数据包含了双精度矩阵,它只是将新的索引添加到现有的元素中。因此,如果第一个[1,9]=4,第二个[1,9]=1,矩阵将显示5。@MarcusLagerstedt我明白了。我猜SparseTensor的行为与此不同。我收到了类似“AttributeError:type object'coo_matrix'没有属性'rows'”的错误消息。您应该将您的解决方案作为答案。
from __future__ import print_function
import tensorflow as tf
import numpy as np
tf_coo = tf.SparseTensor(indices=np.array([[0, 0, 0, 1, 2, 3, 9],
                                            [1, 4, 9, 9, 9, 9, 9]]).T,
                        values=[1, 2, 3, 1,1,1,1],
                        dense_shape=[10, 10])

print('tf_coo: {0}'.format(tf_coo))
print('tf_coo.get_shape(): {0}'.format(tf_coo.get_shape()))