keras 如何对具有一个未知维度的tensorflow 占位符进行数学运算

rfbsl7qr  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(127)

我需要对形状为(None, 128, 128, 3)的tensorflow 占位符或传入占位符的数据进行数学运算。我需要在位置为[:, i:i+5, j:j+5, 3]的占位符上添加形状为(None, 5, 5, 3)的过滤器。我该如何操作呢?
在使用长度为None的数据之前,我会使用

outs = tf.tensor_scatter_nd_add(outs, [[[i + k, j + l] for k in range(5)] for l in
                                                                            range(5)], self.b[h])

嵌套在两个for循环中,其中outs是占位符,self.B[h]是筛选器,ij是循环中的索引。

1cklez4t

1cklez4t1#

您可以使用tf.vectorized_map

i = 5 
j = 9

def add_filter(x):
    return tf.tensor_scatter_nd_add(x[0], [[[x[2] + k, x[3] + l] for k in range(5)] for l in
                                                                            range(5)], x[1])
output = tf.vectorized_map(
    add_filter,
    elems=[outs, b, tf.repeat(i, tf.shape(b)[0]), tf.repeat(j, tf.shape(b)[0])])

相关问题