【发布时间】:2017-11-29 11:34:23
【问题描述】:
我有两个以下形状的张量:
tensor1 => shape(?, ?, 100) # corresponds to [batch_size, max_time, embedding_size]
tensor2 => shape(?, 100) # corresponds to [batch_size, embedding_size]
我希望对tensor2 中的每个[100] dimensional 向量与tensor1 中对应的[max_time, 100] dimensional 矩阵进行矩阵乘法,得到batch_size 的max_time 维向量的个数;与[batch_size, max_time] dimensional 矩阵相同。
对于那些知道的人:我基本上是在尝试在 seq2seq 模型的编码器给出的编码输入上实现基于内容的注意力。所有[max_time]的维向量只是我后来softmax的attention值。
我知道 tensorflow 提供了 AttentionWrapper 以及 contrib 包中的各种帮助程序。但是,我希望这样做,因为我正在尝试使用注意力机制来获得混合注意力掩码。
我尝试了tf.while_loop,但是卡在? 形状中以展开循环。矢量化实现对我来说似乎也不是很直接。请帮忙。
【问题讨论】:
标签: tensorflow lstm tensor attention-model