Pytorch中的LSTM详细代码解读⼩⽩撸代码
import torch
functional as F
import torch.optim as optim
torch.manual_seed(1)
lstm = nn.LSTM(3,3)#输⼊dim = 3 输出dim = 3 格式是输⼊的是3列隐藏层数也是3列 #print(lstm)
湖南卫视成人礼#输⼊
inputs =[torch.randn(1,3)for _ in range(5)]#序列长度为5 1⾏3列的张量;3列是LSTM输⼊的3列 #print(inputs)
云母板hidden =(torch.randn(1,1,3),#;1⼤⾏2⼤列矩阵,每⼤列矩阵是1⾏3列
torch.randn(1,1,3))
#print(hidden)
for i in inputs:
#print(i ,"================")
数字频率计设计
#print(i.view(1,1,-1),"+++++++++++")
#在每⼀步之后,隐藏层包含了隐藏的状态
#输出在view中1个矩阵1⾏-1是每个矩阵的所有元素
#print(hidden,"~~~~~~~~~~~~~~~~~~")
out, hidden = lstm(i.view(1,1,-1),hidden)
#print(out,"$$$$$$$$$$$$$$$$$$$$$")
#view 返回⼀个有相同数据但⼤⼩不同的tensor。
#返回的tensor必须与原tensor相同的数据和相同数⽬的元素,但可以有不同的⼤⼩。
inputs = torch.cat(inputs).view(len(inputs),1,-1)
#print(len(inputs))
hidden =(torch.randn(1,1,3),torch.randn(1,1,3))#清理hidden状态
回来我的爱 阳一#输出
out,hidden =lstm(inputs ,hidden)
#print(out)
#print(hidden)