Tensorflow 一维稀疏张量

Tensorflow 一维稀疏张量,tensorflow,Tensorflow,我试图将一维稀疏向量传递给Tensorflow: 将tensorflow导入为tf 将numpy作为np导入 x=tf.sparse\u占位符(tf.float32) y=tf.sparse\u reduce\u和(x) 使用tf.Session()作为sess: 索引=np.array([0,1],dtype=np.int64) values=np.array([1.5,3.0],dtype=np.float32) shape=np.array([2],dtype=np.int64) 打印(s

我试图将一维稀疏向量传递给Tensorflow:

将tensorflow导入为tf
将numpy作为np导入
x=tf.sparse\u占位符(tf.float32)
y=tf.sparse\u reduce\u和(x)
使用tf.Session()作为sess:
索引=np.array([0,1],dtype=np.int64)
values=np.array([1.5,3.0],dtype=np.float32)
shape=np.array([2],dtype=np.int64)
打印(sess.run)(y,feed_dict)={
x:tf.sparsetenservalue(索引、值、形状)})
此代码引发以下错误:

ValueError: Cannot feed value of shape (2,) for Tensor u'Placeholder_2:0', which has shape '(?, ?)'

我传递的形状是否错误?

索引的大小应为
(2,1)
。因此,将索引更改为:
index=np.array([[0],[1]],dtype=np.int64)
。以下代码有效:

x = tf.sparse_placeholder(tf.float32)
y = tf.sparse_reduce_sum(x)

with tf.Session() as sess:
   indices = np.array([[0], [1]], dtype=np.int64)
   values = np.array([1.5, 3.0], dtype=np.float32)
   shape = np.array([2], dtype=np.int64)
   print(sess.run(y, feed_dict={
      x: tf.SparseTensorValue(indices, values, shape)}))

#Output
#4.5