axes don‘t match array

axis don’t match array的问题

写一个神经网络进行图像分类,在读取数据的部分报错如下

(1)numpy.core._exceptions.UFuncTypeError: Cannot cast ufunc ‘subtract’ output from dtype(‘float64’) to dtype(‘uint8’) with casting rule ‘same_kind’
在这里插入图片描述
however,发现如果把报错的那句A-=B 改为 A=A-B,这个报错就解决了

#X_trian=X_train-mean_image  改
X_trian=X_train-mean_image

有人说原因是:

It may be a numpy/broadcasting issue in python

(2)原代码中,上面的命令下面还有命令如下,这时又报错
axes don’t match array

 X_train = X_train.transpose(0, 3, 1, 2).copy()

在这里插入图片描述
搜了很多,有一个说法是:你的数据集中有灰度图

PIL Image will give you 2 dimension output if it is grayscale image. (e.g. (64, 64, 1) -> (64, 64))

所以解决办法:
(1)将 X_train 进行reshape为和输入一样格式,我用了这个方法有效

    X_train=X_train.reshape(-1,3,32,32)

(2)转换读图模式image.open(filename) .convert(‘RGB’)
我没试过,可以试试

参考:
开源项目问答

https://github.com/statsmodels/statsmodels/issues/3504

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这是一个"ValueError: Axes don't match array"错误,表示数组轴不匹配。通常是在对两个数组进行操作时发生,如加法、乘法等,但这两个数组的形状不同。您需要确保两个数组具有相同的维数和大小,然后才能进行运算。 ### 回答2: valueerror: axes don't match array 是一种常见的错误,通常出现在使用 NumPy 和 Pandas 进行数据处理时。这个错误的原因是多个数组的形状(shape)不匹配或维度(dimension)不同。 在 NumPy 中,数组的形状是指每个维度的长度。例如,对于一个二维数组,shape 可以是 (3, 4),表示有 3 行、4 列。在 Pandas 中,DataFrame 的形状也由行数和列数组成。如果这些形状不匹配,就会出现错误。 在解决此错误前,需要检查以下几点: 1. 检查数组或 DataFrame 的形状是否一致。如果不一致,需要使用 reshape 函数或其他方法使它们的形状匹配,或者考虑合并、切割等操作。 2. 检查数组或 DataFrame 的维数是否一致。如果不一致,需要使用 reshape 函数或其他方法增加或减少维数。 3. 检查操作的两个数组或 DataFrame 的轴是否匹配。操作可能需要沿着不同的轴进行,需要使用 transpose 函数等方法转置矩阵。 例如,如果使用 Pandas 的 concat 函数合并两个 DataFrame,且它们的列名不同,就会出现 axes don't match array 的错误。可以通过重新命名列名或使用 join 函数进行合并操作。 总之,解决 valueerror: axes don't match array 的错误需要仔细检查数据的形状、维数和操作的轴,以确保它们匹配正确。 ### 回答3: 在Python中,当出现"ValueError: axes don't match array"错误时,通常是因为尝试对两个维度不同的数组进行操作,或者是尝试使用不兼容的维度数进行操作。 比如,当你在进行矩阵运算或科学计算时,经常需要注意存储和操作数组的维度。如果两个数组维度大小不匹配,则可能会引发此错误。 此外,Python的numpy库也会出现"ValueError: axes don't match array"错误。当你进行矩阵操作或转换时,经常需要注意维度的匹配。 例如,如果你尝试将一个二维数组转化为一维数组,但忘记指定转换后每行的列数,就可能会出现维度不匹配的错误。 为了避免这个错误,通常需要仔细检查代码中的维度匹配,并根据需要进行相应的改变。 如果出现"ValueError: axes don't match array"错误,可以先检查代码中的矩阵操作是否正确,然后检查数组的维度是否匹配。最后,如果仍然无法解决此错误,则需要查看API文档或咨询其他Python开发人员以获得更多帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值