我有一个稀疏张量(该张量是使用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]]
关于如何执行此操作的任何想法?
答案 0 :(得分: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.