admin 管理员组文章数量: 887174
2024年1月24日发(作者:swift教程中文版下载)
batch_size, seq_len, hid_dim = y = e(-1, hid_dim) y = (y) y = e(batch_size, seq_len, -1) return y# In[123]:def load_data(): seq_number=( [112., 118., 132., 129., 121., 135., 148., 148., 136., 119., 104., 118., 115., 126., 141., 135., 125., 149., 170., 170., 158., 133., 114., 140., 145., 150., 178., 163., 172., 178., 199., 199., 184., 162., 146., 166., 171., 180., 193., 181., 183., 218., 230., 242., 209., 191., 172., 194., 196., 196., 236., 235., 229., 243., 264., 272., 237., 211., 180., 201., 204., 188., 235., 227., 234., 264., 302., 293., 259., 229., 203., 229., 242., 233., 267., 269., 270., 315., 364., 347., 312., 274., 237., 278., 284., 277., 317., 313., 318., 374., 413., 405., 355., 306., 271., 306., 315., 301., 356., 348., 355., 422., 465., 467., 404., 347., 305., 336., 340., 318., 362., 348., 363., 435., 491., 505., 404., 359., 310., 337., 360., 342., 406., 396., 420., 472., 548., 559., 463., 407., 362., 405., 417., 391., 419., 461., 472., 535., 622., 606., 508., 461., 390., 432.],dtype=32 ) seq_number=seq_number[:,s] seq_year=(12) seq_month=(12) seq_year_month=ose( [ (seq_year,len(seq_month)), (seq_month,len(seq_year)), ] ) seq=enate((seq_number,seq_year_month),axis=1)
seq=((axis=0))/(axis=0) return(seq)# In[124]:data=load_data()print(data)train_size=int(len(data)*0.75)# In[125]:data_sample=((train_size-time_step+1,time_step,input_size))label_sample=((train_size-time_step+1,time_step,output_size))for i in range(train_size-time_step+1): data_sample[i]=data[i:i+time_step,:] label_sample[i]=data[i+1:i+1+time_step,0:1:]# In[126]:device=("cuda" if _available() else "cpu")net=RegLSTM(input_size,output_size,mid_dim,mid_layers,True).to(device)criterion=s()
criterion=s()optimizer=(ters(),lr=1e-2)# In[127]:for i in range(epoch): for j in range(int((train_size-time_step+1)/batch_size)): train_X=data_sample[j*batch_size:(j+1)*batch_size,:,:] train_Y=label_sample[j*batch_size:(j+1)*batch_size,:,:] var_x=(train_X,dtype=32,device=device) var_y=(train_Y,dtype=32,device=device) out = net(var_x) loss=criterion(out,var_y) #loss = criterion(out[:,-1,:], var_y[:,-1,:]) _grad() rd() () train_X=data_sample[(j+1)*batch_size:,:,:] train_Y=label_sample[(j+1)*batch_size:,:,:] var_x=(train_X,dtype=32,device=device) var_y=(train_Y,dtype=32,device=device) out = net(var_x) loss = criterion(out, var_y) _grad() rd() () if i%100==0: print('Epoch: {:4}, Loss: {:.5f}'.format(i, ()))# In[128]:net=()test_X=data[train_size:,:]test_Y=data[train_size+time_step:,0:1:]test_y=list()for i in range(test_[0]-time_step): test_x=test_X[i:time_step+i,:].reshape(1,time_step,input_size) test_x=(test_x,dtype=32,device=device) tem=net(test_x).cpu().() test_(tem[0][-1])test_y=(test_y).reshape((-1,1))diff=test_y-test_Yl1_loss=((diff))l2_loss=(diff**2)print("L1:{:.3f} L2:{:.3f}".format(l1_loss,l2_loss))(test_y, 'r', label='pred')(test_Y, 'b', label='real', alpha=0.3)# In[7]:a=([1,2,3])b=([2,2,4])# In[9]:a=e(-1,1)
a=e(-1,1)b=e(-1,1)# In[8]:ef(a,b)# In[10]:e((-1))# In[ ]:
版权声明:本文标题:基于pytorch的lstm时间回归预测(附全部代码) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1706087485h501390.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论