gpt4 book ai didi

python - 在训练 SVM 对图像进行分类时设置具有序列错误的数组元素

转载 作者:行者123 更新时间:2023-12-01 03:34:33 24 4
gpt4 key购买 nike

我正在尝试使用 Python 中的 SVM 对 1022 个图像和 1022 个多类标签(每个标签有 14 个类)进行图像分类。

mypath = 'path'
k = listdir(mypath)
images = np.empty((len(k)-1), dtype=object)
resized_imgs = np.empty((len(k)-1),dtype=object)
for n in range(0, len(k)-1):
images[n] = cv2.imread(join(mypath,k[n]),0) #Reading images in grayscale
resized_imgs[n] = cv2.resize(images[n],(32,32)) #Resizing images
for i in range(0,len(k)-1):
a=resized_imgs[i].mean()
b=resized_imgs[i].std()
t=np.ndarray([32,32])
t.fill(1)
t=t*a
resized_imgs[i]=(resized_imgs[i]-a)/b
X_train = resized_imgs

for i in range(len(k)-1):
X_train[i] = X_train[i].flatten().tolist()

y_train = np.array(y_train)
for i in range(len(k)-1):
y_train[i] = y_train[i].flatten().tolist()

clf=svm.SVC(gamma=0.001)
clf.fit(X_train,y_train)

X_train y_train

现在我收到错误:

---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-469-bfab446776df> in <module>()
----> 1 clf.fit(X_train,y_train[:,0])

C:\Users\user\Anaconda3\lib\site-packages\sklearn\svm\base.py in fit(self, X, y, sample_weight)
148 self._sparse = sparse and not callable(self.kernel)
149
--> 150 X = check_array(X, accept_sparse='csr', dtype=np.float64, order='C')
151 y = self._validate_targets(y)
152

C:\Users\user\Anaconda3\lib\site-packages\sklearn\utils\validation.py in check_array(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
371 force_all_finite)
372 else:
--> 373 array = np.array(array, dtype=dtype, order=order, copy=copy)
374
375 if ensure_2d:

ValueError: setting an array element with a sequence.

我不明白这可能是由于 X_train 数组大小不匹配造成的,因为 X_train 的每个元素都是 1024 个标准化像素值的列表,而 y_train 的每个元素对应于 14 个属性的列表。

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

我发现我哪里出了问题。结果,X_train 的 dtype 是对象类型,所以我必须将其更改为 float。

使用以下代码进行相同的操作,

np.array(list(X_train), dtype=np.float)

关于python - 在训练 SVM 对图像进行分类时设置具有序列错误的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40514019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com