将数据输入到神经网络中
以一个256像素 x 128像素的图片来举例。AI不能直接以常规方式(流或是base64)读取这个图片,而是要将这个图片转换为神经网络能够接收的格式。
首先引入两个概念
- 图片是由很多个像素组成的,每一个像素都是一个纯色颜色块,这些像素组合在一起并缩小,就成了图片
- 每个颜色都能通过三原色:红绿蓝(RGB)来组成。0是最小值,255是最大值,例如(0,0,0)代表黑色;(255,255,255)代表白色。括号内的三个参数分别对应红绿蓝三个颜色的强度值(权重)
那么AI要读取图片也就涉及到了一点数学知识。
首先,每个图片都能理解为是一个由像素组成的矩阵,不理解矩阵的,可以理解为是二维数组,就像Excel表格那样。
其次,每一个像素都是由三原色构成的纯色,所以一个图片可以拆成是三个分别代表红绿蓝的矩阵
三个矩阵内保存的是纯数值,分别对应着该数值所在位置的像素块的红绿蓝色值是多少。
所以,三个矩阵内的相同位置的数值,合并起来就能代表一个颜色,也就是图片中该位置的像素的颜色。
通过一个图片,我们可以得到三个矩阵,但是这三个矩阵还是不能被神经网络直接读取
所以我们要对矩阵进行向量化处理
不会向量不用慌,记住这些词就行。而且实际情况中,都有人把公式写好了,不用自己实现数学逻辑
进行向量化
把这三个矩阵转换为一个向量,那么这个向量的总维数就是 256 x 128 x 3 = 98304
在AI领域中,每一个输入到神经网络中的数据都叫一个特征,那么这个图片就有98304个特征。而这个98304维度的向量,则被称为是特征向量
神经网络接收这个特征向量作为输入,然后预测相应的结果