如何将图像转换为感知器算法的输入向量?

Posted

技术标签:

【中文标题】如何将图像转换为感知器算法的输入向量?【英文标题】:How can i convert an image to input vector for perceptron algorithm? 【发布时间】:2019-11-23 23:49:15 【问题描述】:

我需要实现一个简单的感知器算法。有2个班“猫和狗”。每个训练样本都是(x,t) 形式的一对,其中x 是输入值的向量,t 是目标输出值。但我不知道如何将图像转换为 python 中的矢量形式以用于感知器? 向量形式是什么意思?

图片大小为 32*32。

【问题讨论】:

图像为 32x32,因此您有 1024 个值:这是您的矢量!例如,只需连接所有列... 【参考方案1】:

感知器只处理向量而不是矩阵。因此,您应该将图像展平为矢量。因此,如果您有一批形状像 (1000,32,32) 的图像,您可以这样做:

x = x.reshape((len(x), x.shape[1]*x.shape[2]))

未来,如果你还想处理图像,看看卷积神经网络 (CNN)。

【讨论】:

如果x32x32,你的意思是x = x.reshape(1, x.shape[1]*x.shape[0]) 是的,我认为您正在处理一批图像,例如 (100,32,32)【参考方案2】:

如果你有一个大小为32x32 的图片a

>>> a=np.random.random((32,32))
>>> a.shape
(32, 32)

然后你可以把它转换成一个向量来喂给感知器:

>>> b=a.reshape(1,1024)
>>> b.shape
(1, 1024)

【讨论】:

以上是关于如何将图像转换为感知器算法的输入向量?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习中感知器算法中的权重向量

机器学习--感知器数据分类算法步骤(慕课网-实现简单的神经网络)

了解感知器训练算法

感知机

感知器算法初探

支持向量机(第二章)