恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

T3周:天气识别

  • 首页
  • 资讯中心
  • /
  • T3周:天气识别

相关资讯

基于原始套接字实现LabVIEW网络Ping检测的编程方法 2026/8/22 17:58:52
8、HTML入门——创建超链接 2026/8/22 17:58:52
如何在Win11系统中找到是哪个程序占用了指定端口 2026/8/22 17:58:52

最新资讯

MTR模组JS插件开发:从动态显示屏到铁路系统进阶实战
Java面试实录:幽默程序员如何应对大厂技术拷问
GPT+Skill:系统化挖掘科研与项目创新点的AI辅助方法论
技术面试全攻略:从准备到实战的核心方法论
逆向选择与随机目标:委托代理问题的动态建模与风险控制
基于OpenClaw与AI大模型构建智能面试训练系统

今日推荐

markdown-it-vue 踩坑排障:从安装到渲染的 6 个高频问题快速讲清
多尺度智能体控制:从宏观密度场到微观决策的架构与实践
CUBE标准:统一AI智能体评测的度量衡与架构解析

本周热门

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码
【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码
隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

T3周:天气识别

发布时间:2026/8/22 17:58:52
T3周:天气识别 本文为365天深度学习训练营中的学习记录博客原作者学习目的采用CNN实现多云、下雨、晴、日出四种天气状态的识别一、 前期准备关于环境语言环境Python3.6编译器vsCode深度学习环境TensorFlow 2.6.21.数据导入import tensorflow as tf import os,PIL,pathlib import matplotlib.pyplot as plt import numpy as np from tensorflow import keras from tensorflow.keras import layers,modelsdata_dir D:/jupyter notebook/DL-100-days/datasets/weather_photos/ data_dir pathlib.Path(data_dir)2.查看数据数据集一共分为cloudy、rain、shine、sunrise四类分别存放于weather_photos文件夹中以各自名字命名的子文件夹中。image_count len(list(data_dir.glob(*/*.jpg))) print(图片总数为,image_count)运行结果roses list(data_dir.glob(sunrise/*.jpg)) PIL.Image.open(str(roses[0]))运行结果二、数据预处理1.加载数据使用image_dataset_from_directory方法将磁盘中的数据加载到tf.data.Dataset中batch_size 32 img_height 180 img_width 180img_height/width将图像统一缩放到 180×180 像素。 关于image_dataset_from_directory()的详细介绍可以参考文章https://mtyjkh.blog.csdn.net/article/details/117018789 train_ds tf.keras.preprocessing.image_dataset_from_directory( data_dir, validation_split0.2, subsettraining, seed123, image_size(img_height, img_width), batch_sizebatch_size)运行结果 关于image_dataset_from_directory()的详细介绍可以参考文章https://mtyjkh.blog.csdn.net/article/details/117018789 val_ds tf.keras.preprocessing.image_dataset_from_directory( data_dir, validation_split0.2, subsetvalidation, seed123, image_size(img_height, img_width), batch_sizebatch_size)运行结果通过class_names输出数据集的标签。标签将按字母顺序对应于目录名称。class_names train_ds.class_names print(class_names)运行结果2. 可视化数据plt.figure(figsize(20, 10)) for images, labels in train_ds.take(1): for i in range(20): ax plt.subplot(5, 10, i 1) plt.imshow(images[i].numpy().astype(uint8)) plt.title(class_names[labels[i]]) plt.axis(off)运行结果3. 再次检查数据for image_batch, labels_batch in train_ds: print(image_batch.shape) print(labels_batch.shape) break运行结果这是一批形状180x180x3的32张图片。Label_batch是形状32这些标签对应32张图片4. 配置数据集AUTOTUNE tf.data.AUTOTUNE train_ds train_ds.cache().shuffle(1000).prefetch(buffer_sizeAUTOTUNE) val_ds val_ds.cache().prefetch(buffer_sizeAUTOTUNE)三、构建CNN网络num_classes 4 关于卷积核的计算不懂的可以参考文章https://blog.csdn.net/qq_38251616/article/details/114278995 layers.Dropout(0.4) 作用是防止过拟合提高模型的泛化能力。 在上一篇文章花朵识别中训练准确率与验证准确率相差巨大就是由于模型过拟合导致的 关于Dropout层的更多介绍可以参考文章https://mtyjkh.blog.csdn.net/article/details/115826689 model models.Sequential([ layers.experimental.preprocessing.Rescaling(1./255, input_shape(img_height, img_width, 3)), layers.Conv2D(16, (3, 3), activationrelu, input_shape(img_height, img_width, 3)), # 卷积层1卷积核3*3 layers.AveragePooling2D((2, 2)), # 池化层12*2采样 layers.Conv2D(32, (3, 3), activationrelu), # 卷积层2卷积核3*3 layers.AveragePooling2D((2, 2)), # 池化层22*2采样 layers.Conv2D(64, (3, 3), activationrelu), # 卷积层3卷积核3*3 layers.Dropout(0.3), # 让神经元以一定的概率停止工作防止过拟合提高模型的泛化能力。 layers.Flatten(), # Flatten层连接卷积层与全连接层 layers.Dense(128, activationrelu), # 全连接层特征进一步提取 layers.Dense(num_classes) # 输出层输出预期结果 ]) model.summary() # 打印网络结构Rescaling将像素值从 [0, 255] 缩放到 [0, 1]有助于加快收敛。Dropout(0.3)随机丢弃 30% 的神经元防止过拟合运行结果四、编译# 设置优化器 opt tf.keras.optimizers.Adam(learning_rate0.001) model.compile(optimizeropt, losstf.keras.losses.SparseCategoricalCrossentropy(from_logitsTrue), metrics[accuracy])五、训练模型epochs 10 history model.fit( train_ds, validation_dataval_ds, epochsepochs )运行结果六、模型评估from datetime import datetime current_time datetime.now() # 获取当前时间 acc history.history[accuracy] val_acc history.history[val_accuracy] loss history.history[loss] val_loss history.history[val_loss] epochs_range range(epochs) plt.figure(figsize(12, 4)) plt.subplot(1, 2, 1) plt.plot(epochs_range, acc, labelTraining Accuracy) plt.plot(epochs_range, val_acc, labelValidation Accuracy) plt.legend(loclower right) plt.title(Training and Validation Accuracy) plt.xlabel(current_time) # 打卡请带上时间戳否则代码截图无效 plt.subplot(1, 2, 2) plt.plot(epochs_range, loss, labelTraining Loss) plt.plot(epochs_range, val_loss, labelValidation Loss) plt.legend(locupper right) plt.title(Training and Validation Loss) plt.show()运行结果七、总结本周学习中使用了image_dataset_from_directory实现高效的数据加载并结合.cache()、.prefetch()等机制优化了数据流水线的读取性能其次在建模中加入了dropout层防止过拟合。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号