在使用 np.expand_dims() 函数时,axis 参数的值为 0,表示在最前面插入一个维度。因此,原来的 (100, 100) 维度变为了 (1, 100, 100),而原来的通道维度没有变化,仍为 1。所以最终的 shape 为 (1, 100, 100)。

如果想要让通道维度为 1,可以在 np.expand_dims() 中设置 axis 参数为 1。

代码示例:

for (x, y, w, h) in rect:
    face = gray[y:y + w, x:x + h].astype(np.float32)  # 数值转换
    face = cv2.resize(face, (100, 100))
    face = face.transpose().astype(np.float32) / 255.
    face = np.expand_dims(face, axis=0)  # 扩展维度,变成(batch_size, channels, height, width)
    face = Tensor(face)
    print(face.shape)

解释:

  • np.expand_dims(face, axis=0) 在数组 face 的最前面插入了一个维度,因此 face.shape 变为 (1, 100, 100)。

  • 如果想让通道维度为 1,可以使用 np.expand_dims(face, axis=1),这会在通道维度处插入一个维度,从而得到 (1, 1, 100, 100) 的形状。

Python NumPy expand_dims() 函数:扩展数组维度

原文地址: https://www.cveoy.top/t/topic/jqy2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录