如何进行LSTM总结及sin与cos拟合应用
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,如何进行LSTM总结及sin与cos拟合应用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、LSTM总结RNN在实际应用中,无法处理无
千家信息网最后更新 2025年12月01日如何进行LSTM总结及sin与cos拟合应用
如何进行LSTM总结及sin与cos拟合应用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
一、LSTM总结
RNN在实际应用中,无法处理无关的信息,很难处理长距离的依赖。LSTM思路,在原始RNN的隐藏层只有一个状态h,它对短期的输入非常敏感,那么,我们再增加一个状态c, 它来保存长期的状态。其结构如下:
与RNN比较,
定义LSTM类如下:
class RNN(nn.Module): def __init__(self): super(RNN, self).__init__() self.rnn = nn.LSTM( input_size=INPUT_SIZE, hidden_size=32, num_layers=1, batch_first=True ) self.out = nn.Linear(32, 1) def forward(self, x, h_state, c_state): r_out, (h_state, c_state) = self.rnn(x, (h_state, c_state)) out = self.out(r_out).squeeze() return out, h_state, c_state
改进GRU版本: (Gated Recurrent Unit)
二、sin与cos拟合应用
import torchfrom torch import nnimport numpy as npimport matplotlib.pyplot as pltTIME_STEP = 10INPUT_SIZE = 1learning_rate = 0.001class RNN(nn.Module): def __init__(self): super(RNN, self).__init__() self.rnn = nn.LSTM( input_size=INPUT_SIZE, hidden_size=32, num_layers=1, batch_first=True ) self.out = nn.Linear(32, 1) def forward(self, x, h_state, c_state): r_out, (h_state, c_state) = self.rnn(x, (h_state, c_state)) out = self.out(r_out).squeeze() return out, h_state, c_staternn = RNN()criterion = nn.MSELoss()optimizer = torch.optim.Adam(rnn.parameters(), lr=learning_rate)h_state = torch.randn(1, 1, 32)c_state = torch.randn(1, 1, 32)plt.figure(1, figsize=(12, 5))plt.ion()for step in range(100): start, end = step * np.pi, (step + 1) * np.pi steps = np.linspace(start, end, TIME_STEP, dtype=np.float32, endpoint=False) x_np = np.sin(steps) # x_np.shape: 10 y_np = np.cos(steps) # y_np.shape: 10 x = torch.from_numpy(x_np[np.newaxis, :, np.newaxis]) y = torch.from_numpy(y_np) prediction, h_state, c_state = rnn(x, h_state, c_state) h_state = h_state.data c_state = c_state.data loss = criterion(prediction, y) optimizer.zero_grad() loss.backward() optimizer.step() plt.plot(steps, y_np.flatten(), 'r-') plt.plot(steps, prediction.data.numpy().flatten(), 'b-') plt.draw() plt.pause(.05)plt.ioff()plt.show()
看完上述内容,你们掌握如何进行LSTM总结及sin与cos拟合应用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
应用
状态
内容
方法
更多
问题
处理
原始
束手无策
为此
信息
原因
只有
实际
对此
思路
技能
版本
短期
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
金蝶服务器ip咋样让他固定
天蝎美剧软件开发
数据库增长速率
烟台五八网络技术
数据库设置存储空间
云数据库怎么保障安全
2k19服务器关了mt怎么办
计算机三级数据库技术模拟题
数据库状态正在还原
计算机网络和网络技术基础区别
凹凸手游服务器维护中该怎么办
松江区软件开发服务至上
苏州品牌网络技术参考价格
安庆门店管理软件开发公司
延庆区推广网络技术咨询哪家好
服务器机柜安装几台主机
湖北通用软件开发成本价
云服务器与实体服务器优劣
重庆通用服务器供应商
软件开发技术状态管理计划
kpmg 南京 软件开发
什么叫使用数据库代理
长沙田志软件开发有限公司
归零网络技术有限公司
河南网络安全视频
epid 数据库
云服务器和服务器有什么区别
飞雪服务器
救援软件开发的优势
工信局网络安全审计