能帮忙解释一下《Python深度学习》中的温度预测实例吗?
可能因为这个实例用的GRU RNN,所以设计了一个生成器。
里面有lookback和delay这两个参数我有点迷
def generator(data,lookback,delay,min_index,max_index,shuffle=False,batch_size=128,step=6): if max_index is None: max_index=len(data)-delay-1 i=min_index+lookback while 1: if shuffle: rows=np.random.randint(min_index+lookback,max_index,size=batch_size) else: if i+batch_size>=max_index:#表明取到最后一批(数量<batch_size) i=min_index+lookback rows=np.arange(i,min(i+batch_size,max_index)) i+=len(rows) samples=np.zeros((len(rows),lookback//step,data.shape[-1]))#按小时批量抽取数据点,每个点包含14个特征 # print(samples) targets=np.zeros((len(rows),)) for j,row in enumerate(rows): indices=range(rows[j]-lookback,rows[j],step)#6步(每小时)一个点索引 samples[j]=data.ix[indices,:] t=data.ix[rows[j]+delay,:] targets[j]=t[1]#144步(24小时后的温度数组) yield samples,targets #准备训练生成器、验***和测试生成器 lookback=1440 step=6 delay=144 batch_size=128书中说的是回溯5天的数据(lookback),10分钟一个采样点,1440个正好5天,
然后delay说是24小时后的数据。这个意思是说让 5天的输入数据 来得到 24小时之后那个点的输出?这样训练?
我感觉很迷啊。最后这个网络是只可以预测24小时后某一点的输出,还是一段时间的输出呢?
这个网络测试怎么做呢?是实际上只用了一部分数据预测未来的数据,还是每时每刻都需要输入呢?