当前位置: 首页 > news >正文

第T8周:猫狗识别

  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊

第T8周:猫狗识别

在这里插入图片描述
tf.config.list_physical_devices(“GPU”),用于检测当前系统是否有可用的 GPU,并将结果存入 gpus 变量。如果系统检测到 GPU,代码会选择第一块 GPU(gpu0 = gpus[0]),然后调用tf.config.experimental.set_memory_growth(gpu0, True) 来启用 GPU。
在这里插入图片描述
在这里插入图片描述
设定 batch_size=8,即每次训练时取 8 张图片进行计算。
设定图像大小 224x224,这样所有加载的图片都会被调整到该尺寸,以确保模型输入维度一致。
seed=12:固定随机种子,确保数据划分不会因多次运行而变化。image_size=(img_height, img_width):调整所有图片大小为 224x224。batch_size=batch_size:每批次加载 8 张图片。
数据集中共有3400 张图片,分别属于2个类别。其中,2720张作为训练集,680张作为验证集。
这个批次包含 8 张图片(因为 batch_size=8),每张图片的尺寸是 224x224。 图片有 3 个通道。
Label_batch是形状(8,)的张量,这些标签对应8张图片

在这里插入图片描述
cache(),将数据缓存在内存中,提高训练速度
shuffle(1000):打乱训练数据,缓冲区大小是 1000
prefetch(buffer_size=AUTOTUNE):异步加载数据,加速训练过程(AUTOTUNE 会自动选择合适的预取大小)
layers.Rescaling(1./255):把像素值从 [0, 255] 缩放到 [0.0, 1.0]
map(lambda x, y: …):对数据集中的每张图片 x 应用归一化操作,标签 y 保持不变
从 val_ds 中取出一个 batch(默认是 (batch_size, height, width, 3))
在这里插入图片描述
在这里插入图片描述
多分类任务的 VGG16 卷积神经网络,保留了 VGG16 的经典结构(13 个卷积层 + 3 个全连接层),输出为 nb_classes 类的 softmax 结果。
输入图像的 shape 是 (img_width, img_height, 3),支持 RGB 彩图。
每个 block 都由若干个 3x3 卷积层(带 ReLU 激活),一个 2x2 最大池化层
每个卷积层都使用 ‘same’ padding 保证输出尺寸一致,池化后尺寸减半。
Flatten(),把多维 feature map 展平成一维向量。
两个 Dense(4096) 层,经典的全连接层(重参数)。
Dense(nb_classes, activation=‘softmax’),输出最终的分类概率。
img_width, img_height 是图像的宽和高(为 224x224 默认的 VGG 输入尺寸)。

在这里插入图片描述
在这里插入图片描述
tqdm 是一个进度条库,显示每轮训练/验证的进度。
总共训练10 个 epochs,初始学习率设置为 0.0001。
每轮将学习率乘以 0.92,手动设置给模型的优化器。
遍历 train_ds,对每一个 batch 使用 model.train_on_batch() 进行训练。把最后一个 batch 的 loss 和 accuracy 存进历史列表。保存最后一个 batch 的验证指标。
在这里插入图片描述
在这里插入图片描述Training and Validation Accuracy
随着训练的进行,两条线都持续上升,验证准确率与训练准确率接近,
模型在训练集与验证集上都学习得不错。
Training and Validation Loss
两条线都持续下降,并且非常接近,说明模型在两个数据集上都表现出良好的收敛趋势,没有过拟合现象。
在这里插入图片描述

相关文章:

  • 红帽Linux网页访问问题
  • 【工具变量】1907年大清邮政舆图数据集(高清图+PDF)
  • confluent-kafka入门教程
  • Windows 下 MongoDB ZIP 版本安装指南
  • 【Linux系统篇】:从匿名管道到命名管道--如何理解进程通信中的管道?
  • 《如何结合XMind和DeepSeek高效生成思维导图》
  • Obsidian 文件夹体系构建 -INKA
  • 华为OD机试真题—— 最少数量线段覆盖/多线段数据压缩(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • 网工_传输层协议概述
  • 无感改造,完美监控:Docker 多阶段构建 Go 应用无侵入观测
  • 【ES6新特性】Proxy进阶实战
  • 第IV部分有效应用程序的设计模式
  • 驱动速腾雷达16线并用rviz显示点云
  • C++进程间通信开发实战:高效解决项目中的IPC问题
  • 【c语言基础学习】qsort快速排序函数介绍与使用
  • 3D开发工具HOOPS助力Hexagon智能制造突破技术瓶颈,重塑测量软件用户体验!
  • 算法——置换与排列【基础】
  • LVGL Video控件和Radiobtn控件详解
  • 【无标题】Spark-SQL编程(2)
  • 玩转Docker | 使用Docker部署Xnote笔记工具
  • 对话|男篮国手杨瀚森:参加NBA选秀,去更大的舞台追梦
  • 新版国家卫生监督抽查计划发布,首次明确打击网络“医托”
  • 2025年上海空间信息大会举行,重大项目集中签约
  • 大家聊中国式现代化|郑崇选:提升文化软实力,打造文化自信自强的上海样本
  • 印控克什米尔恐袭引爆印巴新一轮外交摩擦,地区安全风险骤增
  • 俄外长拉夫罗夫将出席金砖国家外长会