如何进行LSTM总结及sin与cos拟合应用
发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,如何进行LSTM总结及sin与cos拟合应用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、LSTM总结RNN在实际应用中,无法处理无
千家信息网最后更新 2024年12月12日如何进行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安全错误
数据库的锁怎样保障安全
洛阳定制软件开发
仿真软件开发教程
数据库附加661出错
vms软件开发
数据库查询出生日期条件
天下3哪个服务器人多
濉溪软件开发技术
静安区新能源网络技术概念设计
七日杀服务器管理员密码
被淘汰的网络技术
新一代网络技术还有哪些
河北手机软件开发大概要多少钱
网络安全的人才
网络安全法关于合法的规定
有关校园网络安全的手抄报图片
戴尔r740服务器电源在哪
wpf内嵌数据库
鲁竹坝小学网络安全系列课堂
奉化一站式软件开发服务
湖北彬峰网络技术有限公司
mc服务器怎么聊天
湖北公安厅网络安全局
软件开发销售营业范围
浙江计算机网络技术包括什么
图像处理与网络技术
挂赚宝网络技术有限公司客服
以下属于广阔网络技术的是
软件开发系统分析设计
小米路由器改打印服务器教程
朱海虹浅谈网络安全