我正在尝试使用 scikit-learn 构建一个简单的图像分类器。我希望避免在训练之前调整每个图像的大小和转换。
问题
给定两个不同格式和大小的图像(1.jpg
和2.png
),我怎样才能避免ValueError
拟合模型?
- 我有一个例子,我只使用 训练
1.jpg
,它很适合。 - 我有另一个例子,我使用
1.jpg
and2.png
和 aValueError
进行训练。
此示例将成功拟合:
import numpy as np
from sklearn import svm
import matplotlib.image as mpimg
target = [1, 2]
images = np.array([
# target 1
[mpimg.imread('./1.jpg'), mpimg.imread('./1.jpg')],
# target 2
[mpimg.imread('./1.jpg'), mpimg.imread('./1.jpg')],
])
n_samples = len(images)
data = images.reshape((n_samples, -1))
model = svm.SVC()
model.fit(data, target)
此示例将引发值错误。
观察目标 2 中不同的 2.png 图像。
import numpy as np
from sklearn import svm
import matplotlib.image as mpimg
target = [1, 2]
images = np.array([
# target 1
[mpimg.imread('./1.jpg'), mpimg.imread('./1.jpg')],
# target 2
[mpimg.imread('./2.png'), mpimg.imread('./1.jpg')],
])
n_samples = len(images)
data = images.reshape((n_samples, -1))
model = svm.SVC()
model.fit(data, target)
# ValueError: setting an array element with a sequence.