我正在尝试实施这篇论文:"与CNN"的多视角句子相似性建模。我在算法1和算法2中遇到了麻烦。 enter image description here enter image description here 这是我第一次编写TensorFlow代码。
with tf.variable_scope("algo_1"):
for i, pooling in enumerate([K.max, K.min, K.mean]):
regM1, regM2 = None, None
for j, ws in enumerate(self.wss):
for k, atten_embed in enumerate(self.atten_embdding):
#conv ->(None, ws, 1, 300) regM1/2 --> (None, 3,1,300)
conv = self.building_block_A(atten_embed, ws)
pool = pooling(conv, 1, keepdims=True)
#conv = tf.squeeze(conv, axis=[0, 2])
if j == 0:
if k == 0:
regM1 = pool
else:
regM2 = pool
else:
if k == 0:
regM1 = tf.concat([regM1, pool], 1)
else:
regM2 = tf.concat([regM2, pool], 1)
所以regM1和regM2是sentence1和sentence2的CNN结果。如何根据算法1和2来校准它们的相似性。
regM1 / 2的形状是[batch_size,3,1,300],其中3是ws的数量,300是过滤器的数量。我不知道如何调整两个Tensor与批次之间的余弦距离。