首页 > 其他分享 >PyTorch深度学习建模与应用--每日最高温度预测

PyTorch深度学习建模与应用--每日最高温度预测

时间:2023-04-13 16:35:36浏览次数:52  
标签:plt features -- torch 建模 PyTorch input data size

1.python

2.Jupyter Lab

http://jupyter.org/

安装jupyter lab只需要在命令提示符中输入 pip install jupyterlab

启动则在命令提示符中输入jupyter lab

https://jupyter.org/try-jupyter/lab/    可以在这里进行尝试。

PyTorch深度学习建模与应用--每日最高温度预测_PyTorch


3.PyTorch

pytorch的配置可以看这篇

https://blog.csdn.net/m0_72572822/article/details/129938788?spm=1001.2014.3001.5501

这篇讲了如何设置GPU版本的PyTorch,该过程可以简述为:

查看系统中的显卡是否支持CUDA,再依次安装显卡驱动程序,CUDA和cuDNN,最后安装PyTorch。


每日最高温度预测

import torch
import numpy as np
import pandas as pd
import datetime
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator
from sklearn import preprocessing

features = pd.read_csv('./temps.csv')

#标签,要预测的温度的真实值
labels = np.array(features['actual'])

#在特征中去掉标签
features = features.drop('actual', axis=1)

#训练集每列名字单独保存,留备用
feature_list = list(features.columns)

#转换成合适的格式
features = np.array(features)
input_features = preprocessing.StandardScaler().fit_transform(features)

#设置网络模型
input_size = input_features.shape[1]
hidden_size = 128
output_size = 1
batch_size = 16
my_nn = torch.nn.Sequential(
    torch.nn.Linear(input_size, hidden_size),
    torch.nn.Sigmoid(),
    torch.nn.Linear(hidden_size, output_size),
)

#损失函数与优化器
cost = torch.nn.MSELoss(reduction='mean')
optimizer = torch.optim.Adam(my_nn.parameters(), lr=0.001)

#训练网络模型
losses = []
for i in range(500):
    batch_loss = []
    #MINI-Batch方法来进行训练
    for start in range(0, len(input_features), batch_size):
        end = start + batch_size if start + batch_size < len(input_features) else len(input_features)
        xx = torch.tensor(input_features[start:end], dtype=torch.float, requires_grad=True)
        yy = torch.tensor(labels[start:end], dtype=torch.float, requires_grad=True)
        prediction = my_nn(xx)
        loss = cost(prediction, yy)
        optimizer.zero_grad()
        loss.backward(retain_graph=True)
        # 所有optimizer都实现了step()方法,它会更新所有的参数
        optimizer.step()
        batch_loss.append(loss.data.numpy())
 
    #打印损失,每100轮打印一次
    if i % 100 == 0:
        losses.append(np.mean(batch_loss))
        print(i, np.mean(batch_loss), batch_loss)

x = torch.tensor(input_features, dtype=torch.float)
predict = my_nn(x).data.numpy()
 
#转换日期格式
months = features[:, feature_list.index('month')]
days = features[:, feature_list.index('day')]
years = features[:, feature_list.index('year')]
dates = [str(int(year)) + '-' + str(int(month)) + '-' + str(int(day)) for year, month, day in zip(years, months, days)]
dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in dates]

#创建一个表格来存日期和其对应的标签数值
true_data = pd.DataFrame(data={'date': dates, 'actual': labels})
 
#同理,再创建一个来存日期和其对应的模型预测值
test_dates = [str(int(year)) + '-' + str(int(month)) + '-' + str(int(day)) for year, month, day in zip(years, months, days)]
test_dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in test_dates]
predictions_data = pd.DataFrame(data={'date': test_dates, 'prediction': predict.reshape(-1)})

#绘制散点图
#matplotlib添加本地的支持中文的字体库,默认是英文的无法显示中文
matplotlib.rc("font", family='SimHei')
plt.figure(figsize=(12, 7), dpi=160)
#真实值
plt.plot(true_data['date'], true_data['actual'], 'b+', label='真实值')
#预测值
plt.plot(predictions_data['date'], predictions_data['prediction'], 'r+', label='预测值',marker='o')
plt.xticks(rotation='30',size=15)
plt.ylim(0,50)
plt.yticks(size=15)

x_major_locator=MultipleLocator(3)
y_major_locator=MultipleLocator(5)
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)
ax.yaxis.set_major_locator(y_major_locator)
plt.legend(fontsize=15)

plt.ylabel('日最高温度',size=15)
plt.show()

运行输出为:

PyTorch深度学习建模与应用--每日最高温度预测_PyTorch_02


PyTorch深度学习建模与应用--每日最高温度预测_PyTorch_03


该应用使用的是PyTorch中的神经网络模型,通过绘制散点图的方式对日最高气温进行预测。

运行上面每日温度预测模型的代码,输出真实值和预测值的散点图。

标签:plt,features,--,torch,建模,PyTorch,input,data,size
From: https://blog.51cto.com/u_16069833/6188149

相关文章

  • 第24届中国环博会丨计讯物联豪华新品首秀,邀您共见卓越
    2023年4月19日-23日,第24届中国环博会在上海新国际博览中心正式拉开帷幕。本届展会将荟集全球顶级污水处理、给水排水、固体废弃物处理、资源回收利用、大气污染治理、室内空气污染治理、场地修复、环境监测、环境服务业等环境污染治理领域的前沿技术与最新解决方案。  计讯......
  • mvc接收异步请求参数
         ......
  • 老冯笔记MyBatisPlus&lombok
    1.MyBatis-Plus介绍参考资料官方指南:https://baomidou.com/pages/24112f/#特性官方配置:https://baomidou.com/pages/56bac0/GitHub:https://github.com/baomidou/mybatis-plus特点只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。只需简单配置,即可快速进行......
  • “天翼云出海友好客户启航会”圆满收官!
    3月28日,“天翼全球云启未来”——天翼云出海友好客户启航会在香港成功举办。中国电信国际公司总经理尹进、副总经理李康和副总经理吴晓雷,大湾区国际信息科技协会会长杨德斌,香港中国企业协会副总裁曾燊典,天翼云科技有限公司助理总经理江峰出席活动,与来自金融、OTT、连锁零售等各行......
  • C # 9.0 的模式匹配
    voidM(objecto1,objecto2){vart=(o1,o2);if(tis(int,string)){}//testifo1isanintando2isastringswitch(o1){caseint:break;//testifo1isanintcaseSystem.String:break;//testifo1isastring}}关系模式 与常数值相......
  • mysql,dorics数据库查询不同类型数据前10条信息
    selectt1.id,t1.namefrom(selectt.id,t.name,row_number()over(partitionbyt.idorderbyt.date)rnfromAt)t1wheret1.rn<=10;结果如下:  ......
  • 【验证码逆向专栏】某验深知 V2 业务风控逆向分析
    声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作......
  • 已经安装了该产品的另一个版本,导致无法安装成功
    https://confluence.zwcad.com/pages/viewpage.action?pageId=853966891、右击安装包,点击卸载。 2、【Win+R】打开计算机运行,输入【regedit】进入注册表,在注册表“计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\”,一般是这个路径。搜索产品......
  • 天翼云赋能芦山县医共体建设,为群众铺就便捷顺畅就医路
     医疗保障是民生保障的重要基础,直接影响着人民群众的幸福感、安全感、获得感。过去,乡村群众面临着看病难、看病贵等问题,近年来我国持续深入推进医药卫生体制改革,通过打造县域医共体,将优质医疗资源下沉,破解医疗资源区域分布不均衡的痛点,让群众在“家门口”就可以看病就医。 芦......
  • zabbix自动发现和自动注册
    文章目录一、概述二、自动发现(被动模式)配置三、自动注册(主动模式)配置 一、概述手动添加客户端非常耗时间,增加人力、时间成本。为了满足监控企业成千上万台服务器,zabbix提供了自动发现与自动注册的功能,自动批量发现局域网中的服务器,并自动添加到zabbix监控平台自动发现(被......