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

东莞企业网站制作出售营销型网站建设题

东莞企业网站制作出售,营销型网站建设题,商标查询官网入口,wordpress视频适应播放器基于神经网络结合紫外差分光谱的二氧化硫浓度定量预测 前言一、代码运行1. 解压数据2. 导包3. 读取数据4. 构建网络5. 设置优化器6. 模型训练7. 可视化loss8. 模型验证 二、结果展示三、总结作者简介 前言 二氧化硫#xff08;SO2#xff09;是一种常见的环境污染物#xff… 基于神经网络结合紫外差分光谱的二氧化硫浓度定量预测 前言一、代码运行1. 解压数据2. 导包3. 读取数据4. 构建网络5. 设置优化器6. 模型训练7. 可视化loss8. 模型验证 二、结果展示三、总结作者简介 前言 二氧化硫SO2是一种常见的环境污染物对大气、水体和土壤等环境有着广泛的影响。因此准确监测和预测大气中的二氧化硫浓度对于环境管理和污染控制具有重要意义。紫外差分光谱是一种常用于二氧化硫浓度监测的方法通过测量大气中SO2在紫外光波段的吸收特性来进行定量分析。 本项目旨在通过应用神经网络技术结合紫外差分光谱数据实现对二氧化硫浓度的准确定量预测。项目将采用从不同环境中收集的紫外差分光谱数据包括大气中SO2的光谱吸收特性以及环境参数如温度、湿度等作为输入特征。基于这些输入特征将建立一个神经网络模型通过对历史数据的学习和训练实现对二氧化硫浓度的预测。 项目计划包括以下步骤 数据采集和准备从不同环境中采集紫外差分光谱数据包括SO2的光谱吸收特性以及环境参数。对采集到的数据进行处理和准备包括数据清洗、特征提取和特征工程等。模型选择和设计根据项目需求选择合适的神经网络模型并进行模型的设计。可以考虑使用常见的神经网络模型如多层感知器MLP、卷积神经网络CNN或循环神经网络RNN等。模型训练和调优使用采集到的紫外差分光谱数据对选定的神经网络模型进行训练和调优。包括将数据集划分为训练集和验证集进行模型参数的优化和调整以获得最佳的预测性能。模型评估和验证通过对模型进行评估和验证包括使用测试数据集进行性能测试评估模型的预测准确性、稳定性和可靠性。根据评估结果进行模型的调整和优化。结果解释和应用根据训练好的神经网络模型实现对二氧化硫的浓度预测 一、代码运行 本文的代码是基于百度的BML Codelab编写项目地址基于神经网络结合紫外差分光谱的二氧化硫浓度定量预测数据在项目中被提供。 1. 解压数据 # 运行完一次记得注释掉 !unzip /home/aistudio/data/data208645/Data.zip -d ./data2. 导包 import pandas as pd import paddle import numpy as np from sklearn.model_selection import cross_val_score, train_test_split import matplotlib.pyplot as plt3. 读取数据 train_data pd.read_excel(./data/Data/train.xlsx, headerNone) val_data pd.read_excel(./data/Data/val.xlsx, headerNone) test_data pd.read_excel(./data/Data/test.xlsx, headerNone) print(加载数据完成)print(train_data:,train_data) print(val_data:,val_data) print(test_data:,test_data)4. 构建网络 class Regressor(paddle.nn.Layer):# self代表类的实例自身def __init__(self):# 初始化父类中的一些参数super(Regressor, self).__init__()self.fc1 paddle.nn.Linear(in_features423, out_features40)self.fc2 paddle.nn.Linear(in_features40, out_features20)self.fc3 paddle.nn.Linear(in_features20, out_features1)self.relu paddle.nn.ReLU()# 网络的前向计算def forward(self, inputs):x self.fc1(inputs)x self.relu(x)x self.fc2(x)x self.relu(x)x self.fc3(x)x self.relu(x)return x5. 设置优化器 # 声明定义好的线性回归模型 model Regressor()# 开启模型训练模式 model.train()# 定义优化算法使用随机梯度下降SGD opt paddle.optimizer.SGD(learning_rate0.01, parametersmodel.parameters())6. 模型训练 EPOCH_NUM 20 # 设置外层循环次数 BATCH_SIZE 32 # 设置batch大小 loss_train [] loss_val [] training_data train_data.values.astype(np.float32) val_data val_data.values.astype(np.float32) # 定义外层循环 for epoch_id in range(EPOCH_NUM):# 在每轮迭代开始之前将训练数据的顺序随机的打乱np.random.shuffle(training_data)# 将训练数据进行拆分每个batch包含10条数据mini_batches [training_data[k:kBATCH_SIZE] for k in range(0, len(training_data), BATCH_SIZE)]train_loss []for iter_id, mini_batch in enumerate(mini_batches):# 清空梯度变量以备下一轮计算opt.clear_grad()x np.array(mini_batch[:, :-1])y np.array(mini_batch[:, -1:])# 将numpy数据转为飞桨动态图tensor的格式features paddle.to_tensor(x)y paddle.to_tensor(y)# 前向计算predicts model(features)# 计算损失loss paddle.nn.functional.l1_loss(predicts, labely)avg_loss paddle.mean(loss)train_loss.append(avg_loss.numpy())# 反向传播计算每层参数的梯度值avg_loss.backward()# 更新参数根据设置好的学习率迭代一步opt.step()mini_batches [val_data[k:kBATCH_SIZE] for k in range(0, len(val_data), BATCH_SIZE)]val_loss []for iter_id, mini_batch in enumerate(mini_batches):x np.array(mini_batch[:, :-1])y np.array(mini_batch[:, -1:])features paddle.to_tensor(x)y paddle.to_tensor(y)predicts model(features)loss paddle.nn.functional.l1_loss(predicts, labely)avg_loss paddle.mean(loss)val_loss.append(avg_loss.numpy())loss_train.append(np.mean(train_loss))loss_val.append(np.mean(val_loss))print(fEpoch {epoch_id}, train MAE {np.mean(train_loss)}, val MAE {np.mean(val_loss)})7. 可视化loss # loss x np.linspace(0, EPOCH_NUM1, EPOCH_NUM)plt.figure() plt.plot(x, loss_train, colorred, linewidth1.0, linestyle--, labelline) plt.plot(x, loss_val, colory, linewidth1.0, labelline) plt.savefig(loss.png, dpi600, bbox_inchestight, transparentFalse) plt.legend([train MAE, val MAE]) plt.title(Loss) plt.xlabel(epoch_num) plt.ylabel(loss value)8. 模型验证 model.eval() test_data paddle.to_tensor(test_data.values.astype(np.float32)) test_predict model(test_data) test_predict test_predict.numpy().flatten() test_predict test_predict.round().astype(int) print(test_predict:,test_predict)二、结果展示 x np.linspace(0, 10, 9) Y_test [4,9,5,6,7,14,12,13,15] Y_test np.array(Y_test)predicted test_predict plt.figure() plt.scatter(x, predicted, colorred) # 画点 plt.scatter(x, Y_test, colory) # 画点 plt.plot(x, predicted, colorred, linewidth1.0, linestyle--, labelline) plt.plot(x, Y_test, colory, linewidth1.0, labelline) plt.savefig(result.png, dpi600, bbox_inchestight, transparentFalse) plt.legend([predict value, true value]) plt.title(SO2) plt.xlabel(X) plt.ylabel(Absorption intensity)三、总结 从图中我们可以看出在SO2高浓度的时候预测的不是很准确这大概率是因为非线性的影响。在气体浓度定量分析中如何去除非线性的影响是一直研究的课题。可以加入光谱预处理来提高模型的准确性例如可以对数据进行差分拟合、小波变换、傅里叶变换等来改进 作者简介 CSDN 人工智能领域新星创作者 百度飞桨开发者技术专家 腾讯云开发初级工程师认证 我在AI Studio上获得钻石等级点亮9个徽章来互关呀~
http://www.hkea.cn/news/14546394/

相关文章:

  • 网站建设 psdopenssl 3漏洞补丁
  • 网博士智能建站wordpress布局模板
  • 传媒公司 网站开发唐山网站制作软件
  • 南京网站建设网南京建站服务
  • 网站设计稿是怎么做的上海企业网站怎么建设
  • 网站地图格式厦门seo网站推广优化
  • 做盒饭的网站网站内容建设出现的问题
  • 机械网站建设价格粤康码小程序
  • 旅游电子商务的网站建设最好大连网站建设
  • 如何提高网站访问量公司注销的网站备案
  • 怎么介绍自己做的企业网站页面杭州建设招标网
  • 网页制作模板在哪买wordpress seo模块
  • 如何创造网站网站建设费是什么
  • 网站导航页面设计wordpress点击图片放大
  • 河池市民政局门户网站建设做网站 请示
  • 温州专业微网站制作网络公司咖啡店网站首页怎么做
  • 赣州专业做网站如何做手机网页
  • 服装建设网站论文的目录免费建网站电话
  • 礼品网站模板没有营业执照 怎么做网站
  • 一键建站哪家信誉好哪个网站有做视频转场的素材
  • 在网站建设中经历的流程拖拉建网站
  • 重庆佳宇建设集团网站成都 企业网站建设公司
  • 通州北苑网站建设上海到北京飞机航班查询
  • 扫描到网站目录然后怎么做网站建设蘑菇街
  • 用什么工具建设网站推广形式有哪几种
  • 佛山响应式网站建设公司申通e物流的网站建设
  • 网站建设网站建设wordpress定时任务
  • 做网站如何来钱提供网站建设公司
  • 商丘整站优化wordpress 数据库挂马
  • 做网站公司无锡如何创建自己公司网站