我有一个大小为12 x 10的矩阵和一个document_length = [4,3,5]的列表。前4行属于一个文档的句子,其他3个属于其他doc,最后5个属于其他doc。我需要以下列方式获得一个尺寸为15 x 10的新矩阵或Tensor。
我需要插入一行零,这样最大doc长度为5.因此,必须在第5个索引中插入1行零(因为第一个doc长度为4)。然后在索引9和10处有2行零(第二个文档长度为3),依此类推。如果问题令人困惑,请告诉我。
我向GRU或LSTM输入了12 x 10,但它必须在3d中。要获得正确的3D,我需要将12 X 10转换为15 x 10。有什么帮助吗?
答案 0 :(得分:3)
这是一种方法。首先将12x10 Tensor分解为大小为12的列表。这是使用tf.unstack()
函数完成的。
# Assume `words` is my 12x10 tensor
tensors = tf.unstack(words, 12, axis=0)
之后,您可以将tf.zeros()
张量插入到索引列表中。为简单起见,我将在索引4
中插入一个张量。
b = tf.zeros((10))
tensors.insert(4, b)
最后,tf.stack()
您的列表重新构建它。
words = tf.stack(tensors, axis=0)