gpt4 book ai didi

python - ValueError : could not broadcast input array from shape (110, 110,3) 变成形状 (110,110)

转载 作者:行者123 更新时间:2023-12-05 03:51:51 25 4
gpt4 key购买 nike

我正在构建一个神经网络,我正在尝试将彩色图像加载到网络中,但我不断收到 reshape 错误。我将所有图像的大小调整为最小尺寸(在本例中为 110 x 110),但是当我尝试将 X(每个图像的像素的未展平 3d 列表)转换为一个 numpy 数组以使用此行称为 xTrain代码:

xTrain = np.array(X[:trainNum])

我收到此错误:“ValueError:无法将输入数组从形状 (110,110,3) 广播到形状 (110,110)”

有谁知道为什么它一直这样做?我认为这是因为我的数据,因为我的合作伙伴用他自己的图像复制了完全相同的代码,并且成功转换为 numpy 数组,但我的没有。作为引用,标题为 X 的列表采用以下格式:

[array([[[137, 151, 199],
[ 93, 114, 166],
[116, 121, 164],
...,
[124, 124, 175],
[160, 162, 193],
[154, 157, 177]],

[[ 81, 94, 153],
[106, 123, 184],
[119, 124, 180],...

我该如何解决这个问题?

最佳答案

很可能,您的 X 列表包含灰度和 RGB 图像的混合。


img_rgb = np.zeros((110, 110, 3))
img_gry = np.zeros((110, 110))

X_good = [img_rgb, img_rgb, img_rgb]
np.array(X_good[:])
# OK

X_bad = [img_rgb, img_gry, img_rgb]
np.array(X_bad[:])
# ValueError: could not broadcast input array from shape (110,110,3) into shape (110,110)

您可以将 X 中的灰度图像转换为 RGB:

def make_rgb(img):
if len(img.shape) == 3:
return img
img3 = np.empty(img.shape + (3,))
img3[:, :, :] = img[:, :, np.newaxis]
return img3

X_repaired = [make_rgb(im) for im in X_bad]

np.array(X_repaired[:])
# No problem

关于python - ValueError : could not broadcast input array from shape (110, 110,3) 变成形状 (110,110),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62627044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com