![](/img/trans.png)
[英]training data with GridSearchCV gives me ValueError, Sci-kit learn
[英]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.