# cat **Repository Path**: liuwenjing2/cat ## Basic Information - **Project Name**: cat - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-04 - **Last Updated**: 2023-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目描述 本项目是一个基于机器学习的图像分类模型,用于识别输入的图像是猫还是狗。项目首先通过命令行参数获取用户选择的模式、特征提取方法和使用的库,然后加载和预处理数据,将数据集划分为训练集和测试集。接下来,项目创建了多个分类器,包括逻辑回归、随机森林、支持向量机、硬投票、软投票、Bagging、Pasting、AdaBoost、梯度提升和堆叠分类器,并使用这些分类器对训练集进行训练,然后在测试集上评估它们的性能。最后,项目保存了性能最好的模型,并使用Gradio创建了一个界面,用户可以上传图像进行预测。 !![输入图片说明](1.png) !![输入图片说明](%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20231204214632.png) # 功能 本项目实现了以下功能: - 加载和预处理数据 - 创建多个分类器并进行训练和评估 - 保存性能最好的模型 - 使用Gradio创建预测界面 # 依赖 本项目依赖以下库: - time - numpy - faiss - joblib - argparse - logging - pickle - gradio - cv2 - sklearn - xgboost - tabulate # 使用 1. 安装依赖库 2. 运行训练脚本 ```bash python train.py -m [cpu|gpu] -f [flat|vgg] -l [sklearn|faiss] ``` 其中: - `-m`:选择训练模式,可选值为cpu或gpu - `-f`:选择特征提取方法,可选值为flat或vgg - `-l`:选择使用的库,可选值为sklearn或faiss 3. 查看训练结果 - 训练完成后,程序会输出识别猫狗的对应网址。 # 注意 - 本项目使用Python 3.8及以上版本进行开发和测试。 - 本项目使用FAISS库进行高效的相似度搜索和稠密向量的聚类。 - 本项目使用sklearn库中的K近邻分类器作为对比实验。 - 本项目使用flat模型进行图像特征提取。 - 本项目使用logging库记录日志。 - 本项目使用tqdm库在循环中添加进度条。 ## 个人信息 - 学号:202152320124 - 年级: 2021 - 专业: 智能科学与技术 - 班级: 一班