【问题标题】:cannot reshape array of size 85696 into shape (85696,1,256,256)无法将大小为 85696 的数组重塑为形状 (85696,1,256,256)
【发布时间】:2020-01-09 14:08:30
【问题描述】:

图像数量为107121,分为测试和训练。

X_train = 85696

在此,我必须为图像添加深度,以便它可以进一步进入 CNN 模型,但在重塑期间,

X_train = X_train.reshape(X_train.shape[0], 1,256, 256)

我收到此错误:

无法将大小为 85696 的数组重新整形为 (85696,1,256,256)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
X_train = X_train.reshape(X_train.shape[0], 1,img_rows, img_cols)

【问题讨论】:

  • print(X_train.shape) 的输出是什么?重塑的目的是什么?
  • reshape 无法更改元素的总数。 X_train 的形状是什么,dtype 是什么。
  • X_train.shape的输出是(85696,)

标签: python image numpy scikit-learn


【解决方案1】:

在应用reshape 函数时,LHS 和 RHS 上的元素总数应该相同。在您的情况下,RHS 上的元素总数为 85696*1*256*256 = 5616173056,而 LHS 上的元素总数为 85696

X_train = 85696X_train = X_train.reshape(21424, 1, 2, 2) 这样的操作非常好,因为现在元素的总数是相等的。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2020-10-15
    • 2019-08-23
    • 2020-02-18
    • 2020-04-14
    • 2020-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多