繁体   English   中英

使用2D输入训练Sci-kit学习神经网络

[英]Training Sci-kit Learn Neural Network with 2D inputs

我正在尝试使用python中的sci-kit学习训练神经网络,以识别图像中的形状。 我有一个位于边缘的点的列表,每个边缘用[x,y]形式表示为x和y坐标。 因此,我想使用格式为[[x,y],[x,y],[x,y],[x,y],[x,y],[x,y],etc.]的列表来训练网络[[x,y],[x,y],[x,y],[x,y],[x,y],[x,y],etc.] 我使用以下代码尝试了此操作,但出现以下错误:

from sklearn.neural_network import MLPClassifier
X = [[[0., 0.], [0., 0.]], [[1., 1.], [1., 1.]]]
y = [0, 1]
clf = MLPClassifier(solver='lbfgs', alpha=1e-5,
                hidden_layer_sizes=(5, 2), random_state=1)

clf.fit(X, y)

ValueError: Found array with dim 3. Estimator expected <= 2.

如果可能的话,有人对我如何解决这个问题有任何建议吗? 根据神经网络的定义和逻辑,我不确定是否可行。 请让我知道任何建议。 谢谢!

Scikit学习最多最多需要二维输入。 您可以尝试合并列表以减少维度。 我使用以下代码将其制作成二维数据,对我来说效果很好

from sklearn.neural_network import MLPClassifier
import numpy as np
X = [[[0., 0.], [0., 0.]], [[1., 1.], [1., 1.]]]
y = [0, 1]
clf = MLPClassifier(solver='lbfgs', alpha=1e-5,
            hidden_layer_sizes=(5, 2), random_state=1)
X_new = []
for i in X:
    temp =[] 
    for j in i:
        for k in j:
            temp.append(k)
    X_new.append(temp)
clf.fit(X_new,y)

循环结束时的X_new看起来像这样

[[0.0,0.0,0.0,0.0],[1.0,1.0,1.0,1.0]]

准确性将取决于数据。 试试看,看看是否有效

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM