# 设置迭代器 classMyDataSet(object): def__init__(self,seq,ws=6): # ws是滑动窗口大小 self.ori=[i for i in seq[:ws]] self.label=[i for i in seq[ws:]] self.reset() self.ws=ws
train_data.reset() if total_loss.tolist()<Mloss: Mloss=total_loss.tolist() torch.save(model.state_dict(),path) print("Saving") print(f'Epoch: {epoch+1:2} Mean Loss: {total_loss.tolist()/len(train_data):10.8f}') return model
from pyecharts.charts import * from pyecharts import options as opts from pyecharts.globalsimport CurrentConfig
1 2 3 4 5 6
pre,ppre=[i.item() for i in x[:ws]],[] # pre 是用原始数据做预测 # ppre 用预测数据做预测 for i inrange(len(x)-ws+1): ppre.append(d(torch.FloatTensor(x[i:i+ws]).unsqueeze(dim=0))) pre.append(d(torch.FloatTensor(pre[-ws:]).unsqueeze(dim=0)).item())
1 2 3 4 5 6 7 8 9
l=Line() l.add_xaxis([i for i inrange(len(x))]) l.add_yaxis("Original Data",x.tolist()) l.add_yaxis("Pred Data(Using Raw Datas)",x[:ws].tolist()+[i.item() for i in ppre]) l.add_yaxis("Pred Data(Using Pred Datas)",pre) l.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) l.set_global_opts(title_opts=opts.TitleOpts(title='LSTM CNN'))
x=torch.FloatTensor(pp_c[pp_c['Item']=="Rice"]['Value'].tolist()) pre,ppre=[i.item() for i in x[:ws]],[] for i inrange(len(x)-ws+1): ppre.append(d(torch.FloatTensor(x[i:i+ws]).unsqueeze(dim=0))) pre.append(d(torch.FloatTensor(pre[-ws:]).unsqueeze(dim=0)).item()) l=Line() l.add_xaxis([i for i inrange(len(x))]) l.add_yaxis("Original Data",x.tolist()) l.add_yaxis("Pred Data(Using Raw Datas)",x[:ws].tolist()+[i.item() for i in ppre]) l.add_yaxis("Pred Data(Using Pred Datas)",pre) l.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) l.set_global_opts(title_opts=opts.TitleOpts(title='LSTM CNN'))
pre_data=pp_c[pp_c['Item']=='Sorghum']['Value'].tolist() l=pre_data[:] for i inrange(len(x)-ws+1): l.append(d(torch.FloatTensor(l[-ws:]).unsqueeze(dim=0)).item()) L=Line() L.add_xaxis([i for i inrange(len(x))]) L.add_yaxis("Pred",l) L.set_series_opts(label_opts=opts.LabelOpts(is_show=False)) L.set_global_opts(title_opts=opts.TitleOpts(title='sorghum production forecasts') )