【问题标题】:Why train NumPy array size is smaller than the whole dataset?为什么训练 NumPy 数组大小小于整个数据集?
【发布时间】:2020-05-28 00:45:37
【问题描述】:

我将所有大小为 100 x 100 的图像转换为 numpy 数组并将其保存到文本文件中。加载并执行 train_test_split 后,它们分别存储到 X_train 和 X_test 中。但是,形状变为 (75,100)。不应该是(100,100)吗?抱歉,我是机器学习新手

【问题讨论】:

  • 第一个参数是您拥有的样本数,例如数据行。如果您的训练集中有 322 张图像,那么对于黑白或灰度图像,您的形状应该是 (322, 100, 100),对于彩色图像应该是 (322, 100, 100, 3)。所以看起来好像出了点问题。
  • @James 在定义我的图像的路径并将其存储到 Z 之后。我使用此命令'img = np.array(Z)'将图像转换为 numpy 数组。错了吗??
  • 您应该将此作为一个新问题提出。您是打开文件并将其作为二进制数据读取到 Z 中,还是通过 PIL 等图像库读取文件?后者才是正确的做法。
  • 在将这些图像转换为 numpy 数组之前,我从 PIL 导入图像以执行此操作。但是为什么还是错了??
  • 没有看到你的代码,很难说

标签: python arrays numpy machine-learning image-processing


【解决方案1】:

如果您有 N 个大小为 100 X 100 的图像,您应该传递一个大小为 (N, 100, 100) 的数组。该函数按第一维拆分。所以,如果你传递一个大小为 100x100 的单个数组,它会认为你的图片的每一行都是一个训练模式,并保留图像的 3/4 作为训练集。

【讨论】:

  • 我知道它会被分成那个比例,但我从没想过它会是百分位数。当我在文本文件中存储了 94 张图像时,它不应该是 (70, 94) 之类的吗? (94*75)/100 = 70.5 所以假设它是 70 或 71
猜你喜欢
  • 1970-01-01
  • 2017-07-29
  • 2021-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-27
  • 1970-01-01
  • 2017-12-12
相关资源
最近更新 更多