如何使用TensorFlow中的稀疏张量进行计算?

spr*_*sel 8 python sparse-matrix tensorflow

我想以批量方式从TensorFlow中的DNC实现中实现此公式.

eqn1
式2
eqn3

使用批量密集张量,它非常简单.

# w [B, N], p [B, N], L [B, N, N], B=batch_size
dot_prod = tf.batch_matmul(tf.expand_dims(w, axis=2), tf.expand_dims(p, axis=1))
one_prod = 1 - tf.expand_dims(w, 1) - tf.expand_dims(w, 2) 
L =  one_prod * pre_L + dot_prod
Run Code Online (Sandbox Code Playgroud)

有没有办法用稀疏张量实现这个?w,pL是稀疏的,但TensorFlow缺乏稀疏批处理matmul和稀疏索引.

小智 0

尝试转换为密集张量:

tf.sparse_to_dense( sparse_indices, output_shape, sparse_values, default_value=0, validate_indices=True, name=None )

使用示例: mat = tf.sparse_to_dense(inds, [n, class_size], vals)

请参阅此处的文档:https ://www.tensorflow.org/api_docs/python/tf/sparse_to_dense