我想在TensorFlow中以批处理的方式实现DNC实现中的此公式。
其中:
L_t[i,j] = (1 - w_t[i] - w_t[j]) * L_{t-1}[i,j] + w_t[i] * p_t[j]
w和r是N维实数向量,L是一个N*N的[0,1]矩阵。
使用批处理的dense tensor非常直观。
其中:
L_t[i,j] = (1 - w_t[i] - w_t[j]) * L_{t-1}[i,j] + w_t[i] * p_t[j]
w和r是N维实数向量,L是一个N*N的[0,1]矩阵。
使用批处理的dense tensor非常直观。
# 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在稀疏批次乘法和稀疏索引方面欠缺。
tf.matmul
中的选项a_is_sparse
和b_is_sparse
是什么意思?https://www.tensorflow.org/api_docs/python/math_ops/matrix_math_functions#matmul - chris