![](/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.