本文为365天深度学习训练营中的学习记录博客原作者K同学啊好久不见。自从上次动态链接库初始化例程失败后就一直没找到解决办法然后就开摆到了今天。然而今天心血来潮打算重新运行一下看看结果突然就成了。隧赶忙记录。由于实在喜欢这个课题在训练之后还把它做成了本地部署的网站。核心技术栈Python TensorFlow/Keras Django一、环境与数据准备1.目录结构确立项目根L8 cats_and_dogs/模型层model/存放训练代码、模型文件Web 层cat_dog_project/(Django 项目配置) classifier/(Django 应用)2.数据集构建 (dataset/)结构dataset/cat/dataset/dog/来源K同学啊二、模型训练与导出核心算法1. 模型训练脚本 (model/train.py)这是课题的算法核心流程如下数据加载与划分使用image_dataset_from_directory读取dataset划分训练集 (2720) 和验证集 (680)。预处理适配使用Rescaling归一化。关键修复使用preprocess_input进行 VGG16 专用均值减法处理。模型构建加载VGG16预训练模型去除顶层。自定义顶层全局平均池化 - 全连接层 - 二分类输出。训练策略冻结基础层只训练顶部分类器。使用EarlyStopping防止过拟合。结果生成best_vgg16_model.h5和最终的cat_dog_model.h5。2. 模型验证工具 (model/predict.py)封装将模型加载和图片预测逻辑封装为函数。逻辑与训练时完全一致的预处理224x224 VGG16 预处理。输出返回猫/狗和置信度。三、Django 网站开发Web 部署1. 项目配置 (cat_dog_project/)核心settings.py注册应用确保INSTALLED_APPS包含classifier和django.contrib.admin。媒体配置配置MEDIA_ROOT和MEDIA_URL用于保存用户上传的图片。路由urls.py接入classifier的 urls。2. 应用核心逻辑 (classifier/)这是连接模型与用户的桥梁A. 视图层 (views.py)功能处理 HTTP 请求。流程接收上传接收前端表单的图片文件。保存文件保存到media/目录。调用模型导入model/predict.py中的函数传入图片路径。返回响应将结果渲染到 HTML 页面。B. 模板层 (templates/classifier/)index.html上传表单供用户选择图片。result.html结果展示页显示原图、预测结果和置信度。C. 应用路由 (urls.py)配置主页路径和预测接口路径。四、运行与调试收尾1. 启动服务器命令python manage.py runserver访问http://127.0.0.1:8000/2. 常见 Bug 与修复点DLL 初始化失败原因CPU 不支持 AVX 指令集。解决安装 VC 运行库或降级 TensorFlow 版本。Admin 应用缺失原因urls.py引用了 admin 但settings.py未注册。解决在settings.py的INSTALLED_APPS中添加django.contrib.admin。模型路径错误注意在 Django 中导入model模块要利用settings.BASE_DIR定位避免相对路径错误。附一个修勾