我有一个轴上的稀疏数据,例如
[[0,0,0],
[1,2,3],
[0,0,0],
[0,0,0],
[4,5,6]]为了提高效率,我希望输入以下格式的批处理
sparse_axes = [1,4]
sparse_data = [[1,2,3],[4,6,6]]在tensorflow中,对数据进行去稀疏。
我知道有函数tf.sparse,但它在轴上不起作用,在这种情况下效率很低。tensorflow中有没有一个函数可以做这样的事情:
> dense_data = tf.zeros((5,3))
> dense_data.assign(sparse_axes, sparse_data) # <--- this is the function I am looking for.
> dense_data
[[0,0,0],
[1,2,3],
[0,0,0],
[0,0,0],
[4,5,6]]发布于 2021-08-09 06:16:35
我找到了一个解决方案:
> sparse_axes = [1,4]
> sparse_data = [[1.0,2.0,3.0],[4.0,6.0,6.0]]
> dense_data = tf.IndexedSlices(
> tf.Variable(sparse_data), sparse_axes, dense_shape=(5,3)
> )
> dense_data.dense_shape
[5,3]
> dense_data * tf.ones((5,3))
<tf.Tensor: shape=(5, 3), dtype=float32, numpy=
array([[0., 0., 0.],
[1., 2., 3.],
[0., 0., 0.],
[0., 0., 0.],
[4., 6., 6.]], dtype=float32)>https://stackoverflow.com/questions/68707494
复制相似问题