如何将给定索引或索引(多个索引)处的值插入张量?
How to insert a value at given index or indices ( mutiple index ) into a Tensor?
我有一个大小为 12 x 10 的矩阵和一个 document_length = [4,3,5] 的列表。前 4 行属于一个文档的句子,接下来的 3 行属于其他文档,最后 5 行属于其他文档。我需要通过以下方式获取大小为 15 x 10 的新矩阵或张量。
我需要插入一行零,这样这里的最大文档长度为 5。因此,必须在第 5 个索引中插入一行零(因为第一个文档长度为 4)。然后是索引 9 和 10 处的 2 行零(第二个文档长度为 3),依此类推。如果问题令人困惑,请告诉我。
我已经将 12 x 10 提供给 GRU 或 LSTM,但它必须在 3d 中。要获得正确的 3D,我需要将 12 X 10 转换为 15 x 10 。有帮助吗?
这是一种方法。您首先将 12x10 张量分解为大小为 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)
我有一个大小为 12 x 10 的矩阵和一个 document_length = [4,3,5] 的列表。前 4 行属于一个文档的句子,接下来的 3 行属于其他文档,最后 5 行属于其他文档。我需要通过以下方式获取大小为 15 x 10 的新矩阵或张量。
我需要插入一行零,这样这里的最大文档长度为 5。因此,必须在第 5 个索引中插入一行零(因为第一个文档长度为 4)。然后是索引 9 和 10 处的 2 行零(第二个文档长度为 3),依此类推。如果问题令人困惑,请告诉我。
我已经将 12 x 10 提供给 GRU 或 LSTM,但它必须在 3d 中。要获得正确的 3D,我需要将 12 X 10 转换为 15 x 10 。有帮助吗?
这是一种方法。您首先将 12x10 张量分解为大小为 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)