【问题标题】:Tensorflow assign sparse input over axisTensorflow 在轴上分配稀疏输入
【发布时间】:2021-08-09 06:06:27
【问题描述】:

我在一个轴上有稀疏数据,例如

[[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]]

【问题讨论】:

    标签: python tensorflow tensorflow2.0 tensorflow-datasets


    【解决方案1】:

    我找到了解决办法:

    > 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)>
    

    【讨论】:

      猜你喜欢
      • 2018-03-16
      • 2019-04-11
      • 2020-03-14
      • 2017-04-30
      • 1970-01-01
      • 2019-05-23
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      相关资源
      最近更新 更多