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

?a品定制网站开发网站支付端口

?a品定制网站开发,网站支付端口,找国外公司做网站,建设标准 免费下载网站Hi#xff0c;大家好#xff0c;我是半亩花海。在现代农业和环境监测中#xff0c;了解土壤湿度的变化对于作物生长和水资源管理至关重要。通过深度学习技术#xff0c;特别是卷积神经网络#xff0c;我们可以利用过去的土壤湿度数据来预测未来的湿度趋势。本文将使用 Pad… Hi大家好我是半亩花海。在现代农业和环境监测中了解土壤湿度的变化对于作物生长和水资源管理至关重要。通过深度学习技术特别是卷积神经网络我们可以利用过去的土壤湿度数据来预测未来的湿度趋势。本文将使用 PaddlePaddle 作为深度学习框架通过数据分析、可视化、数据预处理、模型组网、模型训练和模型预测基于卷积神经网络CNN模型来来处理时间序列数据完成 10cm 土壤湿度的预测从而实现一个简单的回归模型。 目录 一、导入必要库 二、数据分析 三、数据预处理 四、模型组网 五、模型训练 六、模型预测 一、导入必要库 import time import warnings import numpy as np import paddle import paddle.nn as nn import pandas as pd import seaborn as sns from matplotlib import pyplot as plt from sklearn.preprocessing import MinMaxScalerwarnings.filterwarnings(ignore) plt.rcParams[font.sans-serif] [SimHei] # 用来设置字体样式(黑体)以正常显示中文标签 plt.rcParams[axes.unicode_minus] False二、数据分析 # 读取数据 soil_humidity pd.read_excel(./soil_humidity.xlsx, engineopenpyxl) # print(soil_humidity.head())# 构建Datetime字段 soil_humidity[Datetime] pd.to_datetime(soil_humidity[datetime]) soil_humidity.drop([datetime], axis1, inplaceTrue)# 按照时间顺序排序 soil_humidity.index soil_humidity.Datetime soil_humidity.drop([Datetime], axis1, inplaceTrue) soil_humidity soil_humidity.sort_index() print(soil_humidity.head()) # print(soil_humidity.describe()) # 查看数据统计学描述 # print(soil_humidity.dtypes) # 查看数据类型# 可视化数据分布 sns.set(fontSimHei) # 设置Seaborn字体 plt.figure(figsize(8, 5)) plt.plot(soil_humidity.index, soil_humidity[10cm湿度(kg/m2)], b--, label10cm湿度(kg/m2)) plt.title(土壤湿度随时间变化关系, fontsize14) plt.xlabel(时间, fontsize12) plt.ylabel(10cm湿度(kg/m2), fontsize12) plt.yticks(fontsize12) plt.xticks(fontsize12) plt.legend() plt.grid(True, linestyle--, alpha0.5) # 添加网格显示(开启网格虚线透明度0.5) plt.show()# 筛选所需要的字段 soil_humidity_10cm soil_humidity.loc[soil_humidity.index[:], [10cm湿度(kg/m2)]] print(soil_humidity_10cm)# 绘制热力图表示数据框中各列之间的相关性 sns.set(fontSimHei) # 设置Seaborn字体 corr soil_humidity.corr() # 计算数据框中各列之间的相关性 plt.figure(figsize(12, 8), dpi100) plt.title(数据框中各列之间的相关性, fontsize13) heatmap sns.heatmap(corr, squareTrue, linewidths0.2, annotTrue, annot_kws{size: 9}) heatmap.set_xticklabels(heatmap.get_xticklabels(), rotation35, horizontalalignmentright) # 设置y轴标签向左旋转45度 # 设置x轴和y轴标签字体大小 heatmap.tick_params(axisx, labelsize8.5) heatmap.tick_params(axisy, labelsize9) # 调整热力范围字体大小 cbar heatmap.collections[0].colorbar cbar.ax.tick_params(labelsize9) plt.show()soil_humidity.head() 输出结果 10cm湿度(kg/m2)  40cm湿度(kg/m2)  ...  最大单日降水量(mm)  降水天数 Datetime                                  ...                    2012-01-01          13.73          30.87  ...         0.51     5 2012-02-01          13.00          30.87  ...         0.76     5 2012-03-01          12.60          30.87  ...         4.83    13 2012-04-01          11.97          30.73  ...         5.33     3 2012-05-01          14.18          29.99  ...        15.49    10 [5 rows x 14 columns] 三、数据预处理 # 划分数据集 all_data soil_humidity_10cm.values split_fraction 0.8 # 设置80%为训练集 train_split int(split_fraction * int(soil_humidity_10cm.shape[0])) # 获取数据集的行数转换为整数计算切分的训练集大小 train_data all_data[:train_split, :] # 从all_data中取前train_split行作为训练集 test_data all_data[train_split:, :] # 从all_data中取剩余的部分作为测试集# 数据集可视化 plt.figure(figsize(8, 5)) plt.plot(np.arange(train_data.shape[0]), train_data[:, 0], labeltrain data) plt.plot(np.arange(train_data.shape[0], train_data.shape[0] test_data.shape[0]), test_data[:, 0], labeltest data) plt.title(数据集可视化, fontsize14) plt.xlabel(时间, fontsize12) plt.ylabel(10cm湿度(kg/m2), fontsize12) plt.legend() plt.show()# 归一化 scaler MinMaxScaler(feature_range(-1, 1)) # 归一化处理,将数据缩放到[-1, 1]之间 train_scal scaler.fit_transform(train_data.reshape(-1, 1)) test_scal scaler.fit_transform(test_data.reshape(-1, 1))# 划分卷积窗口与标签值 window_size 12 train_scal train_scal.reshape(-1) train_scal paddle.to_tensor(train_scal, dtypefloat32) # 转换成 tensor# 定义数据输入函数用于接受序列数据和窗口大小这俩个参数用于CNN训练 def input_data(seq, ws):out []L len(seq)for i in range(L - ws):window seq[i:i ws]label seq[i ws:i ws 1]out.append((window, label))return out # 返回生成的训练样本列表train_scal_data input_data(train_scal, window_size) # 归一化后的训练集数据,定义的窗口大小 # 打印一组数据集 print(train_scal_data[0])train_scal_data[0] 这一组数据集的打印结果 10cm湿度(kg/m2) Datetime                  2012-01-01          13.73 2012-02-01          13.00 2012-03-01          12.60 2012-04-01          11.97 2012-05-01          14.18 ...                   ... 2021-11-01          13.91 2021-12-01          13.14 2022-01-01          12.45 2022-02-01          12.10 2022-03-01          14.96 [123 rows x 1 columns] 四、模型组网 一维卷积层convolution1d layer根据输入、卷积核、步长stride、填充padding、空洞大小dilations一组参数计算输出特征层大小。 网络构造大体如下 先经过一维卷积层 Conv1D使用 ReLU 激活函数对其进行激活然后经过第1层线性层 Linear1再经过第2层线性层 Linear2 class CNNnetwork(paddle.nn.Layer):def __init__(self):super().__init__() # 调用父类函数self.conv1d paddle.nn.Conv1D(1, 1, kernel_size2) # 一维卷积层Conv1D(输入, 输出, 卷积核大小)self.relu paddle.nn.ReLU() # 激活函数, 引入非线性性# 定义了线性层, 将输入维度为a的特征映射到输出维度为b的空间# 这是一个回归任务, 模型的输出是一个实数self.Linear1 paddle.nn.Linear(11, 50)self.Linear2 paddle.nn.Linear(50, 1)def forward(self, x):x self.conv1d(x) # 通过一维卷积层处理输入数据提取特征x self.relu(x) # 将卷积层的输出通过 ReLU 激活函数, 进行非线性变换x self.Linear1(x) # 第一个线性层,线性变换x self.relu(x) # 将卷积层的输出通过 ReLU 激活函数, 进行非线性变换x self.Linear2(x) # 第二个线性层,线性变换return x五、模型训练 # 五、模型训练 paddle.seed(666) model CNNnetwork() # 设置损失函数这里使用的是均方误差损失 criterion nn.MSELoss() # 设置优化函数和学习率lr optimizer paddle.optimizer.Adam(parametersmodel.parameters(), learning_rate0.001) # 设置训练周期 epochs 30# 划分训练集和验证集 split_idx int(len(train_scal_data) * 0.8) train_set train_scal_data[:split_idx] val_set train_scal_data[split_idx:]model.train() start_time time.time()# 用于存储每轮的训练和验证损失 train_losses [] val_losses []for epoch in range(epochs):# 训练阶段model.train()train_loss 0.0for seq, y_train in train_set:# 每次更新参数前都梯度归零和初始化optimizer.clear_grad()# 注意这里要对样本进行 reshape转换成 conv1d 的 input sizebatch size, channel, series lengthseq paddle.reshape(seq, [1, 1, -1])seq paddle.to_tensor(seq, dtypefloat32)y_pred model(seq)y_train paddle.to_tensor(y_train, dtypefloat32)loss criterion(y_pred, y_train)loss.backward()optimizer.step()train_loss loss.numpy()[0]# 验证阶段model.eval()val_loss 0.0with paddle.no_grad():for seq_val, y_val in val_set:seq_val paddle.reshape(seq_val, [1, 1, -1])seq_val paddle.to_tensor(seq_val, dtypefloat32)y_val paddle.to_tensor(y_val, dtypefloat32)val_pred model(seq_val)val_loss criterion(val_pred, y_val).numpy()[0]avg_train_loss train_loss / len(train_set)avg_val_loss val_loss / len(val_set)# 存储训练和验证损失train_losses.append(avg_train_loss)val_losses.append(avg_val_loss)print(Epoch {}/{} - Train Loss: {:.4f} - Val Loss: {:.4f}.format(epoch 1, epochs, avg_train_loss, avg_val_loss))print(\nDuration: {:.0f} seconds.format(time.time() - start_time))# 可视化训练和验证损失 plt.figure(figsize(8, 5)) plt.plot(range(1, epochs 1), train_losses, labelTrain Loss) plt.plot(range(1, epochs 1), val_losses, labelVal Loss) plt.title(Training and Validation Loss) plt.xlabel(Epochs) plt.ylabel(CNN_Loss) plt.legend() plt.show()六、模型预测 将数据按 window_size 一组分段每次输入一段后会输出一个预测的值 y_predy_pred 与每段之后的第 window_size 1 个数据作为对比值用于计算损失函数。 例如前 5 个数据为 (1,2,3,4,5)取前 4 个进行 CNN 预测得出的值与 (5) 比较计算 loss。这里使用每组 13 个数据最后一个数据作评估值即 window_size12。 # 六、模型预测将数据按window_size一组分段每次输入一段后会输出一个预测的值y_pred y_pred与每段之后的window_size1个数据作为对比值用于计算损失函数 例如前5个数据为(1,2,3,4,5),取前4个进行CNN预测,得出的值与(5)比较计算loss 这里使用每组13个数据,最后一个数据作评估值,即window_size12# 选取序列最后12个值开始预测 preds train_scal_data[-window_size:] y_pred1 [] model.eval() # 设置成eval模式 # 循环的每一步表示向时间序列向后滑动一格 for seq, y_train in preds:# 每次更新参数前都梯度归零和初始化# 转换成conv1d的input sizebatch size, channel, series lengthseq paddle.reshape(seq, [1, 1, -1])seq paddle.to_tensor(seq, dtypefloat32)result model(seq)y_pred1.append(result)print(当前预测值, y_pred1) y_pred1 np.array(y_pred1) y_pred1 y_pred1.reshape(-1, 1) print(完整预测值, y_pred1)# 预测结果反归一化还原真实值 true_predictions scaler.inverse_transform(y_pred1).reshape(-1, 1)# 预测结果可视化 sns.set(fontSimHei) # 设置Seaborn字体 plt.figure(figsize(8, 5)) plt.plot(train_data[-window_size:], labeltrue_value) # 绘制真实值 plt.plot(true_predictions, labelpredicted_value) # 绘制预测值 plt.title(真实值和预测值对比结果, fontsize14) plt.xlabel(最后12个值, fontsize12) plt.ylabel(10cm湿度(kg/m2), fontsize12) plt.yticks(fontsize12) plt.xticks(fontsize12) plt.grid(True) plt.legend() plt.show()完整预测值 [[-0.8811799 ]  [-0.31046718]  [-0.09406683]  [ 0.29082218]  [ 0.64678204]  [ 0.4292445 ]  [ 0.11846957]  [-0.17343275]  [-0.36173454]  [-0.55860955]  [-0.6944711 ]  [-0.6295543 ]]
文章转载自:
http://www.morning.qnlbb.cn.gov.cn.qnlbb.cn
http://www.morning.sgqw.cn.gov.cn.sgqw.cn
http://www.morning.byjwl.cn.gov.cn.byjwl.cn
http://www.morning.prsxj.cn.gov.cn.prsxj.cn
http://www.morning.qtbnm.cn.gov.cn.qtbnm.cn
http://www.morning.mzydm.cn.gov.cn.mzydm.cn
http://www.morning.rzrbw.cn.gov.cn.rzrbw.cn
http://www.morning.hytqt.cn.gov.cn.hytqt.cn
http://www.morning.plqkz.cn.gov.cn.plqkz.cn
http://www.morning.pcqdf.cn.gov.cn.pcqdf.cn
http://www.morning.ldspj.cn.gov.cn.ldspj.cn
http://www.morning.prgnp.cn.gov.cn.prgnp.cn
http://www.morning.pfbx.cn.gov.cn.pfbx.cn
http://www.morning.wnzgm.cn.gov.cn.wnzgm.cn
http://www.morning.hcrxn.cn.gov.cn.hcrxn.cn
http://www.morning.rchsr.cn.gov.cn.rchsr.cn
http://www.morning.rshijie.com.gov.cn.rshijie.com
http://www.morning.bydpr.cn.gov.cn.bydpr.cn
http://www.morning.cnyqj.cn.gov.cn.cnyqj.cn
http://www.morning.bcngs.cn.gov.cn.bcngs.cn
http://www.morning.cthkh.cn.gov.cn.cthkh.cn
http://www.morning.bsqkt.cn.gov.cn.bsqkt.cn
http://www.morning.skcmt.cn.gov.cn.skcmt.cn
http://www.morning.qqxmj.cn.gov.cn.qqxmj.cn
http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn
http://www.morning.gywfp.cn.gov.cn.gywfp.cn
http://www.morning.sfwd.cn.gov.cn.sfwd.cn
http://www.morning.jiuyungps.com.gov.cn.jiuyungps.com
http://www.morning.hkpn.cn.gov.cn.hkpn.cn
http://www.morning.rnqbn.cn.gov.cn.rnqbn.cn
http://www.morning.lrzst.cn.gov.cn.lrzst.cn
http://www.morning.nwgkk.cn.gov.cn.nwgkk.cn
http://www.morning.chhhq.cn.gov.cn.chhhq.cn
http://www.morning.c7500.cn.gov.cn.c7500.cn
http://www.morning.nrlsg.cn.gov.cn.nrlsg.cn
http://www.morning.ztnmc.cn.gov.cn.ztnmc.cn
http://www.morning.pqqxc.cn.gov.cn.pqqxc.cn
http://www.morning.nxnrt.cn.gov.cn.nxnrt.cn
http://www.morning.leboju.com.gov.cn.leboju.com
http://www.morning.jksgy.cn.gov.cn.jksgy.cn
http://www.morning.mwpcp.cn.gov.cn.mwpcp.cn
http://www.morning.dfckx.cn.gov.cn.dfckx.cn
http://www.morning.qtryb.cn.gov.cn.qtryb.cn
http://www.morning.ychrn.cn.gov.cn.ychrn.cn
http://www.morning.newfeiya.com.cn.gov.cn.newfeiya.com.cn
http://www.morning.qghjc.cn.gov.cn.qghjc.cn
http://www.morning.xhftj.cn.gov.cn.xhftj.cn
http://www.morning.xdxpq.cn.gov.cn.xdxpq.cn
http://www.morning.rdtq.cn.gov.cn.rdtq.cn
http://www.morning.xtxp.cn.gov.cn.xtxp.cn
http://www.morning.lcdtb.cn.gov.cn.lcdtb.cn
http://www.morning.bsqkt.cn.gov.cn.bsqkt.cn
http://www.morning.qjlkp.cn.gov.cn.qjlkp.cn
http://www.morning.mspkz.cn.gov.cn.mspkz.cn
http://www.morning.rcklc.cn.gov.cn.rcklc.cn
http://www.morning.pamdeer.com.gov.cn.pamdeer.com
http://www.morning.bgygx.cn.gov.cn.bgygx.cn
http://www.morning.nhdmh.cn.gov.cn.nhdmh.cn
http://www.morning.mpnff.cn.gov.cn.mpnff.cn
http://www.morning.rtjhw.cn.gov.cn.rtjhw.cn
http://www.morning.qrlkt.cn.gov.cn.qrlkt.cn
http://www.morning.trjdr.cn.gov.cn.trjdr.cn
http://www.morning.dgknl.cn.gov.cn.dgknl.cn
http://www.morning.sgbss.cn.gov.cn.sgbss.cn
http://www.morning.smcfk.cn.gov.cn.smcfk.cn
http://www.morning.ztqyj.cn.gov.cn.ztqyj.cn
http://www.morning.pwxkn.cn.gov.cn.pwxkn.cn
http://www.morning.zlcsz.cn.gov.cn.zlcsz.cn
http://www.morning.kqpxb.cn.gov.cn.kqpxb.cn
http://www.morning.wdwfm.cn.gov.cn.wdwfm.cn
http://www.morning.qhrlb.cn.gov.cn.qhrlb.cn
http://www.morning.bmqls.cn.gov.cn.bmqls.cn
http://www.morning.qsy37.cn.gov.cn.qsy37.cn
http://www.morning.fykqh.cn.gov.cn.fykqh.cn
http://www.morning.stph.cn.gov.cn.stph.cn
http://www.morning.gybnk.cn.gov.cn.gybnk.cn
http://www.morning.wttzp.cn.gov.cn.wttzp.cn
http://www.morning.mhdwp.cn.gov.cn.mhdwp.cn
http://www.morning.hxhrg.cn.gov.cn.hxhrg.cn
http://www.morning.mpngp.cn.gov.cn.mpngp.cn
http://www.tj-hxxt.cn/news/266384.html

相关文章:

  • 企业服务账号十堰seo排名公司
  • 建设银行对账网站西双版纳傣族自治州景洪市
  • 福建省城市建设厅网站沧州百度建设网站
  • 毕设做网站难吗网名logo设计制作
  • 公司网站制作商wordpress 页面开发教程
  • 建设厅八大员在哪个网站查询北京网站设计的公司
  • 网站加地图网站建设中 敬请期待
  • 石家庄做网站建设的公司排名建设单位网站
  • 重庆未来科技网站建设郑州百度推广托管
  • 企业网站整理优化介绍自己的网页
  • 科技巅峰如何优化网站关键词排名
  • 网站的建设公司个人网页需要什么内容
  • 温州网站建设温州网站制作京东网站优化
  • 做企业网站设计外贸网站建设上海
  • 绚丽网站模板企业广告策划公司
  • 山东建设银行官网网站怎么进入追信魔盒网站开发软件
  • 毕业网站设计企业管理专业就业方向
  • 成都山而网站建设公司内部网站建设软件
  • 赣州网站开发公司合肥营销网站建设公司
  • .我爱你 域名网站高端网站建设公司哪家好
  • 室内设计网站有哪些比较好推销
  • 刷单类网站开发网络服务商
  • 宜昌需要做网站建设的公司wordpress 自带主题
  • i网站建设网站漏洞有哪些
  • 个人网站 可以做淘宝客吗常州做网站信息
  • qq钓鱼网站生成器手机版陕西网站制作电话
  • 南京网站建设润洽湖北省建设工程信息网官网
  • 有哪个网站做策划方案的多用户 开源oa 系统
  • 网站建设课件外贸网站自建站
  • 专题网站建设小程序科技有限公司