首页 > 解决方案 > 如何在keras中正确使用numpy

问题描述

问题是:

在 keras 教程中,它使用输入 x_train = np.random.random((100, 100, 100, 3)),这应该意味着有 100 张图像,每个图像的大小为 [100,100,3] 对吧?

所以我认为 x_train[0][0] 应该代表第一个 img 的第一个通道(应该是 [100, 100]),但是 x_train[0][0] 实际上的大小是 [100,3] ...所以我很困惑,keras 如何将这个 [100,100,100,3] numpy 数组作为一组 imgs?请帮帮我,在此先感谢。

另一个问题是:如何构造这样的输入?因为当我做 np.array([[100,100],[100,100]]) 时,它变成了 [2,100,100] 的数组

标签: pythonnumpytensorflowkeras

解决方案


这是有关如何访问图像的说明。X 是四维张量。在数学中,张量是将向量和度量推广到更高维数组中。
假设“通道最后”数据格式

  • 第一轴 = 图像数量
  • 第二轴 = 单个图像中的行数
  • 第三轴 = 单行中的列数
  • 第 4 轴 = 某个像素的通道数

现在您可以使用索引访问图像、行、列和通道,如下所示。

  • x[0] 代表第一张图片
  • x[0][0] 代表第一张图片的第一行
  • x[0][0][0] 表示第一张图片第一行的第一列
  • x[0][0][0][0] 代表第一张图像第一行第一列的红色通道

推荐阅读