![](/img/trans.png)
[英]ValueError: n_splits=10 cannot be greater than the number of members in each class
[英]Python ValueError: n_splits=3 cannot be greater than the number of members in each class
我正在做人臉識別項目,我有兩個人,每個人有 2 張臉
1. personA
image1.jpg
image2.jpg
2. personB
image1.jpg
image2.jpg
我正在嘗試在上述數據集的面部嵌入上訓練 model,如下所示:
params = {"C": [0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0], "gamma": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]}
model = GridSearchCV(SVC(kernel="rbf", gamma="auto", probability=True), params, cv=3, n_jobs=-1)
model.fit(data["embeddings"], labels)
其中data["embeddings"]
和labels
的長度為4
。 data["embeddings']
包含 personA, personB 的人臉嵌入的 ndarray
data['embeddings'] = [
[0.02331057, -0.01995077, ..],
[-0.00034041, 0.02753334, ..],
[0.02454563, -0.03797123, ...],
[0.10561685, -0.08444008, ...]
]
labels = [0 0 1 1]
但是我在model.fit(data["embeddings"], labels)
處遇到錯誤:
ValueError: n_splits=3 cannot be greater than the number of members in each class.
我無法理解這個錯誤。 誰能解釋一下這個問題,我該如何解決?
仔細閱讀,錯誤信息清晰且不言自明; 它只是告訴您,由於您的每個班級總共只有兩 (2) 個樣本,因此您不能進行 3 折交叉驗證。 這將需要您的每個班級至少3 個樣本。
我想它應該與cv=2
一起工作而不會引發任何錯誤,但是您的整個方法(即只有 4 個樣本的數據集)似乎非常值得懷疑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.