Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 如何从稀疏张量中仅获取非零值_Tensorflow - Fatal编程技术网

Tensorflow 如何从稀疏张量中仅获取非零值

Tensorflow 如何从稀疏张量中仅获取非零值,tensorflow,Tensorflow,利用TensorFlow的哈希表查找实现,我使用提供的默认值返回SparseTensor。我想清除它,得到一个没有默认值的SparseTensor 如何清除该默认值?为了实现这一点,我不介意默认值是多少。0很好,-1也很好。tf.sparse\u retain应该可以: def sparse_remove(sparse_tensor, remove_value=0.): return tf.sparse_retain(sparse_tensor, tf.not_equal(a.values,

利用TensorFlow的哈希表查找实现,我使用提供的默认值返回SparseTensor。我想清除它,得到一个没有默认值的SparseTensor


如何清除该默认值?为了实现这一点,我不介意默认值是多少。0很好,-1也很好。

tf.sparse\u retain
应该可以:

def sparse_remove(sparse_tensor, remove_value=0.):
  return tf.sparse_retain(sparse_tensor, tf.not_equal(a.values, remove_value))
例如:

import tensorflow as tf

a = tf.SparseTensor(indices=[[1, 2], [2, 2]], values=[0., 1.], shape=[3, 3])
with tf.Session() as session:
  print(session.run([a, sparse_remove(a)]))
打印(我已稍微重新格式化):

[SparseTensorValue(indices=array([[1, 2], [2, 2]]), values=array([ 0.,  1.], dtype=float32), shape=array([3, 3])), 
 SparseTensorValue(indices=array([[2, 2]]), values=array([ 1.], dtype=float32), shape=array([3, 3]))]