张量

时间:2016-04-08 10:44:33

标签: tensorflow

我正在尝试实施论文“端到端内存网络”(http://arxiv.org/abs/1503.08895

每个训练样例都包含许多短语,一个问题,然后是答案。句子的数量是可变的,每个句子中的单词数量和问题也是如此。每个单词都被编码为整数。所以我的输入将有[批量大小,句子数量,句子中的#个词]。

现在我的问题是每个小批量的第二和第三维都是未知的。我仍然能以某种方式将此输入表示为单个张量,或者我是否必须使用张量列表,以便我有一个长度为batch_size的列表,然后是长度为句数的子列表,然后为每个句子设置一个张量,其大小事先也不知道,对应于编码为整数的单词。

我可以使用第二种方法,还是张力流,然后无法反向传播,例如我有一个操作,我必须计算以下总和:\ sum_i tf.scalar_mul(p_i,c_i),其中p_i是标量,c_i是先前计算的嵌入向量。然后将p和c值的张量存储在列表中,因此我必须在循环中对两个列表中的元素求和。我假设张量流不能在计算图中合并这个循环,对吗?我很怀疑,因为theano有一个特殊的扫描功能,允许一个循环输入,所以我假设一个常规循环会导致计算图中出现问题。 tensorflow如何处理这个问题?

1 个答案:

答案 0 :(得分:0)

将雅罗斯拉夫的评论转移到答案:

TensorFlow有tf.scan。尺寸也可能是动态的,如Theano。