【问题标题】:Add row to batch of TensorFlow Tensors将行添加到一批 TensorFlow 张量
【发布时间】:2018-03-12 19:52:05
【问题描述】:

我有排名 3 的张量 [batch_size, num_rows, num_cols]),我想将适当大小的行附加到其中,从而产生尺寸为 [batch_size, num_rows + 1, num_cols] 的排名 3 的张量

例如,如果我有以下一批 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)

为了澄清条款,

  1. context 的尺寸为 [batch_size, context_len, hidden_size]
  2. q_p 的尺寸为 [batch_size, question_len, hidden_size]
  3. question_mask 的尺寸为 [batch_size, question_len]
  4. c0q0 都有尺寸 [hidden_size]

我想做的事

  1. 将向量c0 添加到context,得到一个尺寸为[batch_size, context_len + 1, hidden_size] 的张量
  2. 将向量q0 添加到q_p,得到一个尺寸为[batch_size, question_len + 1, hidden_size] 的张量
  3. 将 1 添加到 question_mask,得到一个尺寸为 [batch_size, question_len + 1] 的张量

感谢您的帮助。

【问题讨论】:

  • 你尝试做什么?
  • 我已将我的尝试和相关详细信息添加到问题中。

标签: python tensorflow


【解决方案1】:

您可以使用tf.map_fn 来执行此操作。

batch = [ [[2, 2],
           [2, 2]],
          [[3, 3],
           [3, 3]],
          [[4, 4],
           [4, 4]] ]

row_to_add = [1,1]

t = tf.convert_to_tensor(batch, dtype=np.float32)
appended_t = tf.map_fn(lambda x: tf.concat((x, [row_to_add]), axis=0), t)

输出

appended_t.eval(session=tf.Session())

array([[[ 2.,  2.],
        [ 2.,  2.],
        [ 1.,  1.]],

       [[ 3.,  3.],
        [ 3.,  3.],
        [ 1.,  1.]],

       [[ 4.,  4.],
        [ 4.,  4.],
        [ 1.,  1.]]], dtype=float32)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 2020-03-19
    相关资源
    最近更新 更多