📌  相关文章
📜  TensorFlow – 如何向张量添加填充(1)

📅  最后修改于: 2023-12-03 15:05:32.361000             🧑  作者: Mango

TensorFlow – 如何向张量添加填充

在TensorFlow中,我们可以使用tf.pad()函数来向张量添加填充。填充通常用于在卷积操作中保留输入张量的尺寸,并在边缘周围添加额外的值。

代码示例

以下是如何使用tf.pad()函数在TensorFlow中添加填充的示例:

import tensorflow as tf

# 创建一个形状为[1, 2, 2, 1]的张量
x = tf.constant([[[[1], [2]],
                  [[3], [4]]]])

# 添加2个填充值
paddings = tf.constant([[0, 0], [1, 1], [1, 1], [0, 0]])
padded_x = tf.pad(x, paddings, "CONSTANT")

print("原始张量:\n", x.numpy())
print("添加填充后的张量:\n", padded_x.numpy())

运行上述代码将输出以下结果:

原始张量:
[[[[1]
   [2]]

  [[3]
   [4]]]]
添加填充后的张量:
[[[[0]
   [0]
   [0]
   [0]]

  [[0]
   [1]
   [2]
   [0]]

  [[0]
   [3]
   [4]
   [0]]

  [[0]
   [0]
   [0]
   [0]]]]
代码解释

以上代码使用tf.pad()函数在卷积输入张量x的上下左右各添加1个填充值。填充的大小为[[0, 0], [1, 1], [1, 1], [0, 0]],它是一个4维数组,每个元素是一个长度为2的元组,表示在该维度上左右各添加的填充值的数量。第1个维度表示批次(batch)大小;第2和第3个维度表示2D输入张量的高度和宽度;第4个维度表示输入张量的深度(灰度图像的深度为1,RGB图像的深度为3)。填充模式设置为"CONSTANT",这意味着添加常量值的填充。

在上面的示例中,我们可以看到,tf.pad()函数已将大小为[1, 2, 2, 1]的张量填充为大小为[1, 4, 4, 1]的张量。

总结

在TensorFlow中,我们可以使用tf.pad()函数向张量添加填充,它在卷积操作中非常有用。我们可以在不同维度上设置不同数量的填充值,并选择不同的填充模式。