我想以批量方式从TensorFlow中的DNC实现中实现此公式。
使用批量密集张量,它非常直接。
# 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
有没有办法用稀疏张量实现这个? w , p 和 L 稀疏但TensorFlow缺乏稀疏批处理matmul和稀疏索引。
答案 0 :(得分: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