画像データのSVC分類子を訓練しようとしています。しかし、私はこのコードを実行すると:画像データを含むscikit-learnのサポートベクター分類器を適用するとエラーが発生する
classifier = svm.SVC(gamma=0.001)
classifier.fit(train_set, train_set_labels)
を、私はこのエラーを取得する:plt.imread(image)
:
ValueError: setting an array element with a sequence.
私はmatplotlibの持つ配列に画像を生成します。
それが配列ではないようなエラーはそう、まだ私は、データの種類とラベルをチェックするとき、彼らは両方のリスト(私は手動でラベルデータのリストに追加)している:
print(type(train_set))
print(type(train_set_labels))
<class 'list'>
<class 'list'>
plt.imshow(items[0])
を実行すると、画像が出力に正しく表示されます。
私もscikit-learn
からtrain_test_split
呼ば:
train_set, test_set = train_test_split(items, test_size=0.2, random_state=42)
例入力:
train_set[0]
array([[[212, 134, 34],
[221, 140, 48],
[240, 154, 71],
...,
[245, 182, 51],
[235, 175, 43],
[242, 182, 50]],
[[230, 152, 51],
[222, 139, 47],
[236, 147, 65],
...,
[246, 184, 49],
[238, 179, 43],
[245, 186, 50]],
[[229, 150, 47],
[205, 122, 28],
[220, 129, 46],
...,
[232, 171, 28],
[237, 179, 35],
[244, 188, 43]],
...,
[[115, 112, 103],
[112, 109, 102],
[ 80, 77, 72],
...,
[ 34, 25, 28],
[ 55, 46, 49],
[ 80, 71, 74]],
[[ 59, 56, 47],
[ 66, 63, 56],
[ 48, 45, 40],
...,
[ 32, 23, 26],
[ 56, 47, 50],
[ 82, 73, 76]],
[[ 29, 26, 17],
[ 41, 38, 31],
[ 32, 29, 24],
...,
[ 56, 47, 50],
[ 59, 50, 53],
[ 84, 75, 78]]], dtype=uint8)
例ラベル:
train_set_labels[0]
'Picasso'
私は私が欠けているものをステップわからないんだけどそれを訓練するために分類器が必要とする形式でデータを取得する。誰にも必要なものが見えますか?あなたが受けている
私はそれに何かを追加することを忘れていたことを知っていた!私は例を用いて質問を更新しました。それが役に立てば幸い! – Jon
'train_set [0]'は 'plt.imread()'関数から得た1つのイメージのデータです。それは正しいフォーマットではありませんか? – Jon
あなたは何かをしているように見えます! 'ValueError:配列がdimで見つかった3. Estimator expected <= 2.'しかし、' plt.imshow(test_set_ [0] ')を実行すると、 ]) '画像を正しく表示します。 – Jon