# faiss_dog_cat_question-2 **Repository Path**: zhanghaojie0530/faiss_dog_cat_question-2 ## Basic Information - **Project Name**: faiss_dog_cat_question-2 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-13 - **Last Updated**: 2024-11-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目描述 这段代码是一个使用Python编写的机器学习项目,主要功能是通过训练和测试数据集,找到最佳的分类模型,并对新的图像进行预测。项目使用了lazypredict库进行模型选择,faiss库进行数据预处理,pickle库保存和加载模型,gradio库创建用户界面,以及cv2库处理图像。 # 功能 本项目实现了以下功能: - 加载和预处理数据:从指定的文件夹中读取训练数据,并将其转换为浮点数类型,然后对数据进行L2归一化。 - 数据集分割:将数据集划分为训练集和测试集,其中测试集占总数据的25%。 - 模型训练:使用LazyClassifier库训练多个模型,并选择F1分数最高的模型。 - 模型预测:使用最佳模型对测试集进行预测,并输出预测结果。 - 图像预处理:定义一个函数,将输入的图像转换为灰度图像,调整大小为32x32像素,并重塑为1D数组。 - 图像预测:定义一个函数,接收一张图像作为输入,调用图像预处理函数进行处理,然后使用最佳模型进行预测,最后返回预测结果(猫或狗)。 - 创建用户界面:使用gradio库创建一个用户界面,用户可以上传一张图像,然后点击按钮进行预测。 # 依赖 本项目依赖以下库: - numpy - faiss - sklearn - argparse - logging - tqdm - cv2 - os - imutils - pickle - xgboost - tabulate - gradio - lazypredict # 使用 1. 安装依赖库 2. 运行训练脚本 3. 查看训练结果 训练完成后,程序会输出各个模型的训练时间和相应的准确率,并保存准确率最高的模型。 # 注意 - 本项目使用Python 3.8及以上版本进行开发和测试。 - 本项目使用FAISS库进行高效的相似度搜索和稠密向量的聚类。 - 本项目使用logging库记录日志。 - 本项目使用tqdm库在循环中添加进度条。 - 本项目使用gradio方法进行模型部署。 ## 个人信息 - 学号: 202252320309 - 年级: 22 - 专业: 智能科学与技术 - 班级: 3班