使用支持向量机训练tensorflow猫狗识别框架的数据集代码
时间: 2023-06-18 22:02:41 浏览: 109
以下是一个使用支持向量机(SVM)训练猫狗识别框架的数据集代码示例:
```python
import os
import cv2
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
# Load image data and labels
data = []
labels = []
for img_file in os.listdir("dataset"):
label = img_file.split(".")[0]
img = cv2.imread(os.path.join("dataset", img_file))
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = cv2.resize(img, (64, 64))
data.append(img.flatten())
labels.append(label)
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=42)
# Train SVM classifier
clf = SVC(kernel='linear', C=1)
clf.fit(X_train, y_train)
# Evaluate classifier on testing set
accuracy = clf.score(X_test, y_test)
print("Accuracy:", accuracy)
```
其中,`dataset` 是包含猫狗图像的文件夹。我们首先遍历文件夹中的每个图像文件,将其转换为灰度图像并调整大小为 64x64 像素。然后将图像数据和标签存储在 `data` 和 `labels` 列表中。
接下来,我们使用 `train_test_split` 函数将数据集拆分为训练集和测试集。在这个示例中,我们使用 20% 的数据作为测试集。
最后,我们使用 `SVC` 类(支持向量机分类器)来训练分类器,并使用 `score` 方法计算测试集上的准确率。在这个示例中,我们使用线性核函数和 C=1 的惩罚参数。你可以根据需要调整这些参数以获得更好的分类性能。
阅读全文