我有3个张量[batch_size,num_rows,num_cols]),我想要追加适当大小的行,从而得到维度为3的张量[batch_size,num_rows 1,num_cols]
例如,如果我有以下批次的2x2矩阵
batch = [ [[2, 2],
[2, 2]],
[[3, 3],
[3, 3]],
[[4, 4],
[4, 4]] ]
和一个新行 v = [1, 1]
我想追加,然后想要的结果是
new_batch = [ [[2, 2],
[2, 2],
[1, 1]],
[[3, 3],
[3, 3],
[1, 1]],
[[4, 4],
[4, 4],
[1, 1]] ]
在TensorFlow中有一种简单的方法吗?这是我尝试过的:
W, b, c0, q0 = params
c = tf.concat([context, c0], axis=1)
q_p = tf.tanh(tf.matmul(W, question) + b)
q = tf.concat([q_p, q0], axis=1)
q_mask = tf.concat([question_mask, 1], axis=1)
澄清条款,
-
context
的尺寸为[batch_size, context_len, hidden_size]
-
q_p
的尺寸为[batch_size, question_len, hidden_size]
-
question_mask
的尺寸为[batch_size, question_len]
-
c0
和q0
都有尺寸[hidden_size]
我想做的事
-
将矢量
c0
添加到context
,从而产生尺寸为[batch_size, context_len + 1, hidden_size]
的Tensor -
将矢量
q0
添加到q_p
,产生尺寸为[batch_size, question_len + 1, hidden_size]
的Tensor -
将1添加到
question_mask
,产生尺寸为[batch_size, question_len + 1]
的Tensor
谢谢您的帮助 .
1 回答
您可以使用tf.map_fn执行此操作 .
输出