如何填充3D NumPy数组:将(2,128,128)转为(2,162,162)
3D数组补零填充实现方案
针对你形状为(2, 128, 128)的3D NumPy数组,要填充到(2, 162, 162),可以直接基于tf.pad扩展实现,步骤如下:
计算填充量
- 第一个维度(对应原数组的2):目标尺寸和原尺寸一致,无需填充,前后填充量为
[0, 0] - 第二、第三个维度(对应原数组的128):目标尺寸162与原尺寸128的差值为34,将差值均分在前后两侧,即每个维度前后各填充17,填充量为
[17, 17]
完整代码示例
import numpy as np import tensorflow as tf # 模拟你的3D NumPy数组 np_input = np.random.rand(2, 128, 128) # 转成TensorFlow张量 input_tensor = tf.convert_to_tensor(np_input) # 定义3D数组的填充规则:每个维度对应[前填充量, 后填充量] padding = tf.constant([[0, 0], [17, 17], [17, 17]]) # 执行补零填充 padded_tensor = tf.pad(input_tensor, padding, mode='CONSTANT') # 验证形状 print("原数组形状:", input_tensor.shape) print("填充后形状:", padded_tensor.shape)
代码说明
padding参数是一个3行2列的张量,每一行对应原数组的一个维度,分别指定该维度前面和后面需要填充的零的数量mode='CONSTANT'指定填充值为常数(默认就是0,无需额外指定填充值)
内容的提问来源于stack exchange,提问作者user19686684
相关产品推荐
相关产品推荐

