第T3周:天气识别

本文将采用CNN实现多云、下雨、晴、日出四种天气状态的识别。较上篇文章,本文为了增加模型的泛化能力,新增了Dropout层并且将最大池化层调整成了平均池化层。

1. 设置GPU

2. 导入数据

注意:复制文件地址时,需要把“\”改成“/”

3. 查看数据

输出结果:

二、数据预处理

1. 加载数据(将数据分为训练集和测试集并且打上标签)

输出结果:

训练集 900 预测集225 总共1125 分为了四类

通过 class name给他们打上标签

2. 可视化数据

3. 再次检查数据

输出结果:

4. 配置数据集

三、构建CNN网络

卷积神经网络(CNN)的输入是张量 (Tensor) 形式的 (image_height, image_width, color_channels),包含了图像高度、宽度及颜色信息。不需要输入batch size

网络结构图:

输出结果:

四、编译

  • 损失函数(loss):用于衡量模型在训练期间的准确率。
  • 优化器(optimizer):决定模型如何根据其看到的数据和自身的损失函数进行更新。
  • 指标(metrics):用于监控训练和测试步骤。(我的代码选择的是准确率)

五、训练模型

六、模型评估

1. 训练和验证准确率(左图)

  • 训练准确率(蓝色线)显示了模型在训练数据上的表现。随着训练周期(epochs)的增加,训练准确率逐渐提高,最终接近0.95,表明模型能够很好地学习训练数据中的模式。
  • 验证准确率(橙色线)显示了模型在未见过的数据(验证集)上的表现。验证准确率的波动较大,但总体趋势是上升的,最终略低于训练准确率。这可能表明模型在训练数据上表现良好,但在新数据上可能存在一些过拟合的风险。

2. 训练和验证损失(右图)

  • 训练损失(蓝色线)表示模型在训练数据上的误差。随着训练的进行,训练损失持续下降,这表明模型正在学习减少预测误差。
  • 验证损失(橙色线)表示模型在验证数据上的误差。验证损失的波动较大,且在后期有轻微上升的趋势,这可能是过拟合的迹象,即模型在训练数据上学习得太好,以至于不能很好地泛化到新数据。

综合分析

  • 过拟合风险:如果训练准确率持续上升而验证准确率开始下降,或者验证损失开始上升,这可能是模型开始过拟合的迹象。
  • 模型泛化能力:如果验证准确率和损失在一定范围内波动,这可能表明模型具有良好的泛化能力,能够在新数据上保持性能。
  • 训练效果:训练损失的持续下降表明模型正在有效地学习训练数据中的模式。

建议

  • 正则化:如果存在过拟合的迹象,可以尝试正则化技术,如添加dropout、使用数据增强或减少模型复杂度。
  • 早停:如果验证损失在连续几个周期内不再下降,可以考虑使用早停来防止过拟合。
  • 超参数调整:可能需要调整学习率、批次大小或模型架构等超参数,以优化模型性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值