0

我有一个稀疏张量(张量是在分类值上使用 tf.Transform 生成的),我使用以下命令将其转换为密集表示

bow_indecies = tf.sparse_tensor_to_dense(sparse_bow_indecies, default_value=0)

这会产生一个大小为 的矩阵batch_size x max_seq_length。数组看起来像这样

[[ 597 1157   60    0    0    0]
 [ 939 1212  169   10    0    0]
 [ 242  719  215  520   57    6]]

我想将零填充从尾随反转为前导,以便看起来像这样

[[   0    0    0   597  1157  60]
 [   0    0  939  1212   169  10]
 [ 242  719  215   520    57   6]]

关于如何做到这一点的任何想法?

4

1 回答 1

0

有一种粗鲁的方法可以做到这一点,如果你可以指定SparseTesor.

我的意思是你必须告诉你的SparseTesor对象(sparse_bow_indecies)非零值的索引。

文档说“不在 sp_input 中的索引被分配了 default_value。” https://www.tensorflow.org/api_docs/python/tf/sparse_tensor_to_dense

所以在你的情况下

SparseTesor您的对象 ( )中的索引可能与sparse_bow_indecies您期望的结果类似如下。

SparseTensor(indices=[[0, 3], [0, 4],[0, 5],[1, 2],[1, 3],.....], values=[............], dense_shape=[3, 6])

或尝试覆盖索引,如果SparseTensor对象已经与您同在。

sparse_bow_indecies.indices = =[[0, 3], [0, 4],[0, 5],[1, 2],[1, 3],.....] #Kept dots for continuation.
于 2018-07-23T20:27:12.843 回答