zoukankan      html  css  js  c++  java
  • Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction论文笔记

    四个INOUT.h5文件

    每一个h5文件有两个子集:

    ' date ':与**data**关联的时间段列表。

    “data”:一个4D的形状张量(number_of_timeslots, 2,32,32),其中“data[i]”是一个时间块“date[i]”的形状三维张量(2,32,32),“data[i][0]”是一个“32x32”的流入矩阵,“data[i][1]”是一个“32x32”的流出矩阵。

     

    文件名称:“BJ_Meteorology.h5’,它有以下四个子集:

    *“日期”:一个时间段列表,它与以下类型的数据相关联。

    *“温度”:连续值的列表,其中“i^{th}”值是“日期[i]”的分时段“温度”。

    *“风速”:连续值的列表,其中“i^{th}”值是“日期[i]”处的“风速”。

    *“天气”:2D矩阵,每一个都是一个热向量(“dim=17”),显示以下天气类型之一:

    Sunny = 0,
    Cloudy = 1,
    Overcast = 2,
    Rainy = 3,
    Sprinkle = 4,
    ModerateRain = 5,
    HeavyRain = 6,
    Rainstorm = 7,
    Thunderstorm = 8,
    FreezingRain = 9,
    Snowy = 10,
    LightSnow = 11,
    ModerateSnow = 12,
    HeavySnow = 13,
    Foggy = 14,
    Sandstorm = 15,
    Dusty = 16,

    文件名称:“BJ_Holiday.txt ',其中包括一个列表的假期(和相邻的周末)北京。

    每行数据格式为[yyyy][mm][dd]。例如,“20150601”是“2015年6月1日”

    最原始的数据集已经将整个北京市划分成了一个32×32 的小区域,并且也已经统计出了每个小区域每隔半小时(一个时间片)的进出流量,即已经表示成了[2,32,32] [2,32,32][2,32,32]的格式。同时论文在实现时候,采用的是用当前时刻的前3个时间片来模拟邻近性(Closeness),用当前时刻前一天的相同时刻的一个时间片来模拟周期性(Period),用当前时刻前一周的相同时刻的一个时间片来模拟趋势性(Trend),即代码中的len_closeness=3,len_period=1,len_trend=1作为三个超参数。也就是用这三个部分来预测ti时刻的流量

    论文中还引入了其它额外的气象等数据,分别是:time_feature,holiday_feature,meteorol_feature最终将这三个部分拼成一个向量meta_feature

     

    对于每个时间片来说:
    time_feature有8维度,前面7个维度为one-hot形式,最后以为表示当天是否为工作日;例如图p0069中的含义为,该时间片对应为星期四且为工作日。
    holiday_feature有1个维度,0表示时间片所在的当天为工作日,1表示假期。
    meteorol_feature有19个维度,前面17个也为one-hot形式,表示天气类型中的一种,后面两个维度分别表示风速和温度

    最后将这个三个向量拼接成了一个28维度的向量。也就是说,现在我们已经知道了整个网络输入数据的形式了。对于数据预处理的这部分,直接调用下面函数即可获取:

    X_train, Y_train, X_test, Y_test, mmn, external_dim, timestamp_train, timestamp_test =
    load_data(len_closeness=3, len_period=1, len_trend=1, len_test=4*7* 48)

    网络构建

    首先定义了网络的输入部分,笔者将其分成了5个placeholder,其含义如变量名;然后接着就是定义网络的部分,即Closeness,Period,Trend这三个部分和天气模块;最后就是评估和训练模块。分别在下面这几个方法中被定义:

    def _build_placeholder(self):
    def _build_stresnet(self, ):
    def evaluate(self, mmn, x, y):
    def train(self, x, y):

    运行结果

  • 相关阅读:
    SpringBoot2.1.6 整合CXF 实现Webservice
    一次线上CPU高的问题排查实践
    SpringBoot整合升级Spring Security 报错 【The request was rejected because the URL was not normalized】
    Web服务器☞Apache VS Nginx
    PHP 遍历一个文件夹下所有文件和子文件夹的方法
    PHP 使用 header 方式实现文件下载功能
    PHP gd 库添加 freetype
    MySQL varchar 最大长度,text 类型占用空间剖析
    S.O.L.I.D: PHP 面向对象设计的五个基准原则
    PHP不重新编译,单独添加模块扩展的方法
  • 原文地址:https://www.cnblogs.com/HIT-ryp/p/12148248.html
Copyright © 2011-2022 走看看