# lazy **Repository Path**: liuwenjing2/lazy ## Basic Information - **Project Name**: lazy - **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-10 - **Last Updated**: 2023-12-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # lazypredict_dog_cat # 项目描述 这段代码是一个使用Python编写的机器学习项目,主要功能是通过训练和测试数据集,找到最佳的分类模型,并对新的图像进行预测。项目使用了lazypredict库进行模型选择,faiss库进行数据预处理,pickle库保存和加载模型,gradio库创建用户界面,以及cv2库处理图像。 # 功能 本项目实现了以下功能: - 加载和预处理数据:从指定的文件夹中读取训练数据,并将其转换为浮点数类型,然后对数据进行L2归一化。 - 数据集分割:将数据集划分为训练集和测试集,其中测试集占总数据的25%。 - 模型训练:使用LazyClassifier库训练多个模型,并选择F1分数最高的模型。 - 模型预测:使用最佳模型对测试集进行预测,并输出预测结果。 - 图像预处理:定义一个函数,将输入的图像转换为灰度图像,调整大小为32x32像素,并重塑为1D数组。 - 图像预测:定义一个函数,接收一张图像作为输入,调用图像预处理函数进行处理,然后使用最佳模型进行预测,最后返回预测结果(猫或狗)。 - 创建用户界面:使用gradio库创建一个用户界面,用户可以上传一张图像,然后点击按钮进行预测。 ![输入图片说明](1.png) ![输入图片说明](2.png) # 依赖 本项目依赖以下库: - numpy - faiss - sklearn - argparse - logging - tqdm - cv2 - os - imutils - pickle - tensorflow - gradio # 使用 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. 查看训练结果 - 训练完成后,程序会输出最佳的k值和相应的准确率。 # 注意 - 本项目使用Python 3.8及以上版本进行开发和测试。 - 本项目使用FAISS库进行高效的相似度搜索和稠密向量的聚类。 - 本项目使用sklearn库中的K近邻分类器作为对比实验。 - 本项目使用VGG16模型进行图像特征提取。 - 本项目使用logging库记录日志。 - 本项目使用tqdm库在循环中添加进度条。 ## 个人信息 - 学号: 202152320124 - 年级: 2021 - 专业: 智能科学与技术 - 班级: 1班