이미지 데이터 용 SVC 분류자를 학습하려고합니다. 나는이 코드를 실행하면 그러나 :이미지 데이터가 포함 된 scikit-learn에서 지원 벡터 분류자를 적용하면 오류가 발생합니다.
classifier = svm.SVC(gamma=0.001)
classifier.fit(train_set, train_set_labels)
을이 오류를 얻을 :
ValueError: setting an array element with a sequence.
나는하기 matplotlib와 배열로 이미지를 생산 :
plt.imread(image)
. 이 배열에없는 것처럼
오류가 보인다, 아직 나는 데이터가 모두 목록에있는 라벨의 종류를 확인할 때 (I 수동으로 라벨 데이터를 목록에 추가) :
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'
난에 누락 어떤 단계 모르겠어요 그것을 분류하기 위해 분류 자 (classifier)가 필요로하는 형태로 데이터를 얻는다. 누구든지 필요한 것을 볼 수 있습니까?
나는 그것에 뭔가를 추가하는 것을 잊고 있다는 것을 알았다! 예제로 질문을 업데이트했습니다. 희망이 도움이됩니다! – Jon
'train_set [0]'은'plt.imread()'함수에서 얻은 한 이미지의 데이터입니다. 올바른 형식이 아닌가요? – Jon
뭔가있는 것처럼 보입니다! 'Value_rror : 희미한 배열을 찾았습니다 3. Estimator expected <= 2.' 그래도'plt.imshow (test_set_ [0]')를 실행하면'train_set [0] ])'그것은 이미지를 정확하게 보여준다. – Jon