Tensorflow 一维稀疏张量
我试图将一维稀疏向量传递给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导入为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