混合时空图卷积网络:利用导航数据改进交通预测效果 | KDD 2020
作者 | 高德机器学习团队
出品 | AI科技大本营(ID:rgznai100)
引言
时空预测(spatio-temporal forecasting)在天气预报、运输规划等领域有着重要的应用价值。交通预测作为一种典型的时空预测问题,具有较高的挑战性。日常通勤中的规律往往相对容易挖掘,但交通状况还会受影响于各种难以预知的事件(例如娱乐庆典活动的举办、恶劣天气等)。以往的研究中[1, 2, 3],数据驱动的方法往往利用通行时间这类交通状态特征作为模型的主要输入。后续有研究[4, 5]提出利用事件相关的特征(例如利用推特文本或地图中热门POI搜索频次等数据)来将事件信息引入到模型中,但这类方法带来的效果提升仅限于事件发生的热点位置。
为解决这一问题,我们从高德导航引擎中获取了“计划中交通流量”(intended traffic volume),并将其扩充到机器学习模型当中。计划中交通流量来自导航数据,反映了用户出行意图中蕴含的未来交通流量。由于拥有海量用户,高德地图中的导航规划数据能够较为全面地反应正在发生的通行需求,并且信息粒度较事件级别的特征更精细。具体来说,规划的路线产生了计划中交通流量,而计划中交通流量可以用以指导对未来通行时间的预测。图 1 中,volf代表当前可获取的导航路径在f个时间步后在此路段产生的计划中交通流量。计划中交通流量的迅速飙升意味着即将到来的交通拥堵。
图 1 北京某路段在2019年10月28日早高峰期间通行时间和计划中交通流量
为了将交通流量这一异质信号整合到通行时间预测模型当中,我们创新性地设计出一种域转换器(domain transformer)结构,用于将交通流量信息转化为通行时间信息。交通流理论中,路段的交通流量和车辆密度呈三角形曲线映射关系,而曲线的参数是因路段而异的。图2展示了现实世界中的例子。为了利用这一转换关系,我们设计了将流量转化为通行时间的转换器,该转换器由两层网络构成,分别用于提取全局共享信息和学习不同路段的精细化信息。
图 2 四个不同路段的流量时间曲线
另一方面,由于交通网络的非欧几里得特性,我们利用图卷积(graph convolution)结构提取空间依赖性特征,并设计了一种新的邻接矩阵用于更好地体现路段间的交通邻近性。在以往的文献中[6],邻接矩阵的权重只按距离衰减,并没有考虑到路段间固有的交通邻近性(图 3 给出了距离近但交通状态相差较大的例子)。为解决这一问题,我们设计了一种复合邻接矩阵(compound adjacency matrix),在距离衰减的基础上进一步引入了路段通行时间的协方差。
图 3 相邻道路间拥堵不一定会传播
本文中,我们所提出的混合时空图卷积网络(Hybrid Spatio-Temporal Graph Convolutional Network,H-STGCN)是综合利用上述技术的交通预测框架。在H-STGCN中,转换器结构将未来交通流量信号转化为通行时间信号。路段间参数共享的门控卷积用于提取时间依赖信息。基于复合邻接矩阵的图卷积从合并后的通行时间信号中捕捉空间依赖信息。H-STGCN经由端到端的训练,可具备基于计划中交通流量信息预测未来拥堵的能力。利用真实交通数据集进行实验可验证,H-STGCN的效果显著优于各种前沿模型。
本文的主要贡献点概括如下:
我们提出了一种将计划中交通流量引入机器学习模型的交通预测方法。这一方法将基于数据驱动的交通预测方法和基于交通仿真的预测方法[8]加以结合,显著提升了预测的效果。
我们设计了域转换器结构,将交通流量这一异质信号加以转化整合。这一结构具有通用性,可以适配到各种基于神经网络的交通预测模型。
我们提出了一种新的复合邻接矩阵,可以编码路网中固有的交通接近性。
我们提出了H-STGCN这一多模态学习框架,并在真实数据集上取得了显著优于各种前沿模型的效果。
基础
给定一个由n个有向路段组成的交通网,按5分钟的间隔将时间离散化,训练集、测试集的时间范围分别表示为[0,Strain)和[Strain,Strain+Stest)。我们将数据集表示为张量X∈Rn×(Strain+Stest)×C(in),其中C(in)表示输入特征的维数。
通行时间(travel time)/交通流量(traffic volume)。通行时间τi,t定义为路段si在时间片t上的平均通行耗时(单位距离)。类似地,交通流量vi,t代表时间片t内进入到路段si的车辆数。
理想未来流量(ideal future volume)。给定时间片t0,理想未来流量νi,t0,f(f≥0)与交通流量vi,t0+f的值相对应,并且在下述两条假设成立时两者相等:1)仅考虑t0时刻正在使用导航服务的车辆;2)每辆车严格按照规划路线行驶,且速度与ETA(estimated time of arrival,预计抵达时间)相吻合。
历史均值(historical average,HA)。将一周内时间片的数量记为L(例如按每5min一个时间片计算,则每小时有12个时间片,每天只考虑06:00-22:00这16个小时,则L=7×16×12=1344。变量ωi,t(可以是通行时间或理想未来流量)定义为
其中,W是训练集时间跨度包含周的数量。
交通预测(traffic forecasting)。给定时刻t以及所有此时能够获取到的数据,交通预测模型输出交通网中各路段未来的通行时间。更具体地,给定前序交通特征{X:,t−P+1,:,…,X:,t,:},模型H对接下来几个时间片各路段的通行时间加以预测:H(X:,t−P+1,:,…,X:,t,:)={^τ:,t+1,…,^τ:,t+F},其中P表示输入时序的长度,F代表预测时间跨度(forecasting horizon)。
方法
3.1. 整体框架
图 4 展示了H-STGCN的整体框架。模型输入由两个特征张量组成,理想未来流量V和通行时间张量T。V和T均包含三个维度:空间维度、时间维度、通道维度,分别对应路段、所使用的时间片和特征。域转换器(模块a)首先将V转化为通行时间信号,输出“未来通行时间”张量X(g1)。接下来,两个独立的门控卷积(模块b)分别作用于X(g1)和T的时间维度以提取更高层级的时域特征。将每个路段视为一个节点,基于复合邻接矩阵的图卷积(模块c)作用在合并(concatenation)后的信号h=hν⊕hτ上。两个门控卷积继续扩大时域上的感知范围,并最终经由一个全连接层(FC)输出预测结果。
图4 H-STGCN模型框架
3.2. 模型输入与数据处理
输入特征张量X的每个切片对应了一个单独的时间片t(≤t0)。每个切片又由两部分组成:理想未来流量和通行时间。
理想未来流量。作为对真实未来流量这一无法获取信息的近似,理想未来流量νi,t0,f可以通过在线导航引擎获取。图 5 示意了高德导航系统的架构。导航过程中,车辆每秒钟与云服务器同步自身坐标,与此同时,为保证用户获取到最新的交通状态信息,云服务器对ETA进行几乎实时的持续更新。
图 5 高德导航系统架构示意
高德导航引擎中原始数据的形式为
其中r是导航进程的索引号,ψr是导航r的发起时间,νi,t0,f代表规划路线中的第l个路段,δr,l是到达ρr,l的预估时间,Mr是路线中路段的总数量,NL是导航进程的总数量。ETA来自机器学习模型的预测(利用历史轨迹等数据训练得到)。算法 1 展示了从导航路线集合中推算理想未来流量的方法。
H-STGCN中,与预测时间窗口相对应的理想未来流量和历史平均流量同时被输入:
其中 i 是路段的索引号。
通行时间。通行时间τi,t通过完成地图匹配的GPS点数据整合计算得到。H-STGCN中,通行时间及其与预测时间窗口相对应的历史均值同时被用于模型的输入:
其中 i 是路段的索引号。
3.3. 域转换器
域转换器Λ由串联的两层网络组成,即逐路段1×1卷积(segmentwise 1×1 convolution)和路段间共享1×1卷积(shared 1×1 convolution),图 6 呈现了这一结构。
图 6 H-STGCN中的各种卷积运算
共享1×1卷积。路段及时间片间参数共享的1×1卷积层Γ(c)位于域转换器的顶部,该卷积运算阐释如图6a,旨在捕捉全局的三角形曲线映射关系。记这一层的输入和输出为X(c)i,t,:∈RC(cin)与Y(c)i,t,:∈RC(cout),则有:
其中F(c)∈RC(cin)×C(cout)为权重,b(c)∈RC(cout)为偏置项,σ为ELU(Exponential Linear Unit)激活函数。逐路段1×1卷积 。为保证模型能够充分提取精细到路段级别的特征,路段参数个性化的1×1卷积层Γ(s位于域转换器 的底部(共享1×1卷积前⾯⼀层),该卷积运算阐释如图 6b。记这⼀层的输⼊和输出为X(s)i,t,:∈RC(sin)与Y(s)i,t,:∈RC(sout) ,则有:
其中,F(c)∈RC(cin)×C(cout)为权重,b(c)∈RC(cout)为偏置项, σ是ELU激活函数。
3.4. 基于复合邻接矩阵的图卷积
复合邻接矩阵。以往研究[6,7]中的邻接矩阵假设节点间的接近性简单地依距离衰减:
其中dij为路段si与sj的最短路距离,σ控制衰减速率,ϵ为控制矩阵稀疏性的截断阈值。我们将W(d)称为迪杰斯特拉矩阵(Dijkstra matrix)。在很多场景下,单纯的空间接近程度并不能反映真实的交通邻近性。更具体而言,交通拥堵对交通分流的影响取决于邻近路段的若干种属性,包括道路等级、路况等。可见,拥堵的传播在空间上并不均匀。由此,我们提出了复合邻接矩阵W(c):
其中(⋅)+=max{0,⋅},τi=∑t∈[0,Strain)τi,t/Strain。
图卷积。我们将交通路网视为一个以路段为节点的图。归一化图拉普拉斯(normalized graph Laplacian)矩阵L和缩放变换的图拉普拉斯(scaled graph Laplacian)矩阵L分别表示为:
其中In为单位阵,W(c)为复合邻接矩阵,对角阵D为W(c)的度矩阵(degree matrix),λmax是L的最大特征值。图卷积层Θ通过L的切比雪夫多项式(Chebyshev polynomials)参数化。记这一层的输入和输出为X(Θ):,t,:∈Rn×C(Θin)和Y(Θ):,t,:∈Rn×C(Θout),则:
其中,Tk(~L)是切比雪夫多项式第k阶项,K是卷积核大小,Θ∈RK×C(Θin)×C(Θout)Θ∈RK×C(Θin)×C(Θout)为权重张量,b(Θ)j为偏置项,σ是ELU激活函数。
3.5. 时域门控卷积
如图 6c 所示,路段间参数共享的一维卷积将输入X(g)∈Rn×P×C(gin)转化为张量:
其中 * 表示一维卷积运算符。F(g)∈RKt×C(gin)×2C(gout)是卷积核,Kt是卷积核的大小,P是输入时序长度,b(g)是偏置项。A和B形状相同、通道数均为C(gout)。我们使用GLU(gated linear unit)进一步引入非线性:
“⊙”表示哈达玛积(Hadamard product)。
3.6. 与STGCN的关系
时空图卷积网络(Spatio-Temporal Graph Convolutional Network,STGCN)[7]将空域图卷积层和时域门控卷积层交替地进行堆叠以同时捕捉时间和空间的依赖性。将H-STGCN的流量特征分支和邻接矩阵中的协方差项去掉,则H-STGCN退化为只有单个时空卷积块(ST-Conv block)的STGCN模型。
3.7. 模型训练
数据扩充。我们将高斯噪音叠加到流量通道中小于ϵn的值上,以提升模型的泛化能力。
优化目标。对于本文中的多时间步预测,我们使用L1损失函数:
其中τi,t+f是模型的输出,τi,t+f为真值。
实验
4.1. 数据集
实验数据集分别记作W3-715和E5-2907,分别对应西三环附近的715个路段和东五环附近的2907个路段(如图 7 所示)。数据集的时间跨度为2018年12月24日至2019年4月21日(其中包含的节假日被移除,共十周数据),保留的时段为每天的06:00至22:00。前八周数据作为训练集,后两周作为测试集。
图 7 实验路网空间分布
4.2. 用于对比的方法
基线模型。包括历史均值(HA)、线性回归(LR)、GBRT、MLP、Seq2Seq、STGCN(包含单个时空卷积块)。
用于对比实验的变种模型。
STGCN (Im):换用复合邻接矩阵的STGCN(用于和原始的迪杰斯特拉矩阵对比。
H-STGCN (1):将流量特征张量V全部设成1。
4.3. 评价指标
我们在三种测试集上进行模型效果的比对:
全测试集(如4.1节中所描述)。
高流量路段的拥堵时期,用C表示。
高流量路段的突发拥堵时期,用尾缀NRC表示。
4.4. 效果比较
表 1 展示了在全测试集、测试集C、测试集NRC上不同模型的表现。评估标准包括MAE(s/m)、MAPE(%)和RMSE(s/m)。H-STGCN在各项指标上均显著优于不同的对标模型,在突发拥堵的预测方面优势尤为明显。
表 1 模型效果对比
复合邻接矩阵。分析表 1 可知,和STGCN相比,STGCN (Im)在W3-715数据集上有着更低的MAE、MAPE,在E5-2907数据集上有着更低的MAE、MAPE及RMSE,证明了复合邻接矩阵的有效性。图 8 以E5-2907数据集为例,对不同邻接矩阵进行可视化。图中颜色代表的值为lg(wij+1),(a)为迪杰斯特拉矩阵,(b)为协方差矩阵,(c)为复合邻接矩阵。
图 8 E5-2970的各种邻接矩阵
未来流量特征和域转换器。如表 1 所示,和STGCN (Im)相比,H-STGCN有着稳定的更优表现,从而证实了利用未来流量数据带来的收益。由于域转换器中逐路段卷积结构的存在,H-STGCN的模型表达能力是强于STGCN (Im)的。为了消除这一影响以针对未来流量特征带来的收益做更公平的分析,我们进一步将H-STGCN与H-STGCN (1)进行对比。在测试集C、测试集NRC上,不难发现未来流量特征在对拥堵的预测上有显著更优的表现。如图 9 所示,随着预测时间跨度的拉长,未来流量特征带来的收益会起主导作用。
图 9 测试集NRC上效果比对
为了更加直观地对H-STGCN的原理加以剖析,我们这里展示一个突发拥堵预测的案例(如图 10 所示)。这个案例来自2018年4月16日某一高速路段。GT代表真值,HA代表历史均值,τ(−f)是f个时间步以前对当前通行时间的预测值,νi,t,f是对f个时间步后的理想未来流量。17:30至18:00拥堵加剧的阶段,H-STGCN (1)提前多个时间步的预测结果和真值相比有明显的时间滞后。
相比之下,H-STGCN由于有理想未来流量中的信息,甚至有能力在30min以前就对拥堵有着准确的预测。我们可以这样理解这一现象:νi,t,3对应的曲线代表了对15min之后交通流量的近似推算,该曲线在17:15就开始拉升了。基于导航引擎中只有当前时刻已经发起的导航行程这一事实,实际的未来流量要比理想未来流量更高。所以,νi,t,3的飙升预示着有较大的交通流量正在涌来,这就使H-STGCN能够在没有历史数据做参考的情况下预知未来的拥堵。
图 10 突发拥堵预测案例
4.5. 模型可扩展性
模型在W3-715和E5-2097两数据集的预测时间不超过100ms。为了在实际线上应用场景中平衡推演效率和预测效果,我们将城市路网切分成最多包含几千个路段的子路网,每个子路网在线上部署一个模型。
应用
本⽂提出的⽅法已在高德驾车路线的旅行时间预测(ETA)(见图 11)中落地[9,10],并将偏差严重的案例数量降低了15%。此外,本方法首次以数据驱动的方式建模了用户出行意图与交通路况演化之间的相互作用,未来可以广泛的应用在主动式的交通管理(proactive traffic management)领域,例如智能红绿灯调控(intelligent traffic light control)[9]、智能道路收费系统(intelligent toll systems for roads)[10]等。
图 11 ETA预测结果的展示
结论
本文中,我们提出了一种新的用于通行时间预测的深度学习框架:混合时空图卷积网络(H-STGCN),该框架利用从导航数据中推演出的计划中交通流量提升模型效果。我们设计了域转换器,以此整合异质模态的交通流量特征。我们设计了复合邻接矩阵使得图卷积层能够更好地捕捉路段间的接近性。在真实场景数据集上进行的实验证实H-STGCN和对标的模型相比取得了显著更优的效果,在突发拥堵的预测上优势尤为明显。这一框架提供了一种将物理知识嵌入数据驱动模型的新范式,可以较容易地推广应用于一般的时空预测任务当中。
主要参考文献
[1] Yaguang Li, Rose Yu, Cyrus Shahabi, and Yan Liu. 2018. Diffusion convolutional recurrent neural network: Data-driven traffic forecasting.
[2] YishengLv, YanjieDuan, WenwenKang, Zhengxi Li, Fei-Yue Wang, etal. 2015. Traffic flow prediction with big data: A deep learning approach. IEEE Trans. Intelligent Transportation Systems 16, 2 (2015), 865–873.
[3] Bing Yu, Haoteng Yin, and Zhanxing Zhu. 2018. Spatio-Temporal Graph Convolutional Neural Network: A Deep Learning Framework for Traffic Forecasting. In Proceedings of the 27th International Joint Conference on Artificial Intelligence (IJCAI).
[4] JingruiHe, WeiShen, Phani Divakaruni, Laura Wynter, and Rick Lawrence. 2013. Improving Traffic Prediction with Tweet Semantics. In Proceedings of the 23rd International Joint Conference on Artificial Intelligence (IJCAI). 1387–1393.
[5] Binbing Liao, Jingqing Zhang, Chao Wu, Douglas McIlwraith, Tong Chen, Shengwen Yang, Yike Guo, and Fei Wu. 2018. Deep Sequence Learning with Auxiliary Information for Traffic Prediction. In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. ACM.
[6] Yaguang Li, Rose Yu, Cyrus Shahabi, and Yan Liu. 2018. Diffusion convolutional recurrent neural network: Data-driven traffic forecasting.
[7] Bing Yu, Haoteng Yin, and Zhanxing Zhu. 2018. Spatio-Temporal Graph Convolutional Neural Network: A Deep Learning Framework for Traffic Forecasting. In Proceedings of the 27th International Joint Conference on Artificial Intelligence (IJCAI).
[8] Moshe Ben-Akiva, Michel Bierlaire, Haris Koutsopoulos, and Rabi Mishalani. 1998. DynaMIT: A simulation-based system for traffic prediction. In DACCORD Short Term Forecasting Workshop. Delft, The Netherlands, 1–12.
[9] Wei, H., Zheng, G., Yao, H. and Li, Z., 2018. Intellilight: A reinforcement learning approach for intelligent traffic light control. In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining.
[10] https://en.wikipedia.org/wiki/Congestion_pricing
推荐阅读
MATLAB 被禁点燃导火索,国产软件路在何方?
万字长文带你入门 GCN
陆奇:疫情下的创业者,最不能缺两大能力
使用虚幻引擎4年,我想再谈谈它的网络架构
真惨!连各大编程语言都摆起地摊了
为何 DeFi 将带来一场巨大的范式转变?
你点的每个“在看”,我都认真当成了AI
相关文章:

MS SQL Server和MySQL区别
- 最近在做MS SQL Server转换成MySQL的工作,总结了点经验,跟大家分享一下。同时这些也会在不断更新。也希望大家补充。 1 MySQL支持enum,和set类型,SQL Server不支持 2 MySQL不支持nchar,nvarchar,ntext类型 3 MySQL的递增语句是AUTO_INC…

DataGrid在分页状态下删除纪录的问题
在使用DataGrid分页的时候,正常情况下,绑定数据库列表纪录时会自动产生分页的效果,然而我发觉在删除纪录的时候总会发生"无效的 CurrentPageIndex 值。它必须大于等于 0 且小于 PageCount。"的异常,其实解决这个问题很简…

thinkphp pathinfo nginx 无法加载模块:Index
thinkphp 报了 无法加载模块:Index 错误位置 FILE: /var/multrix/wxactivity_archive/ThinkPHP/Library/Think/Dispatcher.class.php LINE: 177 这个错,刚开始以为是路由错了,还跟了一下代码,始终没有答案,弄了一上午࿰…

Linux普通用户启动tomcat
修改tomcat/bin/catalina.sh文件,加入 export JRE_HOME/usr/java/jre1.6.0_27 ------------------------------------------------------ #!/bin/sh # chkconfig: 2345 80 30# description: tomcat starup scriptCATALINA_HOME/usr/local/apache-tomcat-7.0.21su - …

ASP.NET中利用cookies保持客户端信息
作者:未知 请作者速与本人联系我当前所吃的东东都固定为食物,所以一点也不惊讶,这一周的主题为cookies。Cookies用于存储特定用户信息,它提供了Web程序中一种有用的方式。多年以来,JavaScript开发人员已经进行了有关…
中国自动驾驶技术有多强?你可能还不知道
随着大数据、互联网、5G等技术在汽车领域的不断普及和推广,自动驾驶技术也开始为人们熟知。无论是新能源汽车还是传统汽车,自动驾驶都是业界未来需要抢占的制高点,越来越多的企业在自动驾驶领域开始发力。随着无人驾驶汽车相关法律法规的放宽…

UNIX/Linux系统管理技术手册(3)----bash 数组和算术运算
复杂的数据结构和计算不是 bash 的特长。但它的确至少提供了数组和算术运算。 1.算术运算 所有的 bash 变量的值都是字符串,所以 bash 在赋值的时候并不区分数字 1 和 字符串 "1" 。不同之处在于如何使用变量。下面几行代码展示出了其中的差异:…

文件上传的实现(C#)
文件上传一. 在Form中一定要将encType设为"multipart/form-data":<form id"WebForm3" method"post" encType"multipart/form-data" runat"server" >二. 判断是否有文件上传了:当用户没有选…

C#编程应用--线程与委托
1. C#开发C/S程序,有时需要几个端,如服务器端,管理端,客户端等等, 端与端之间是不同线程或者进程,这就涉及跨线程调用的问题,使用委托或者异步线程是必不可少的,这里是一个简单的委托…
深度整合英特尔傲腾,SmartX首发100us级超低延迟超融合解决方案
6 月 17 日,致力于超融合中高端市场的SmartX公司正式发布基于核心软件 SMTX OS 与英特尔 傲腾™ 持久内存的高性能、低延迟超融合解决方案与SmartX Halo P系列一体机。 SmartX 在业内首次将英特尔傲腾持久内存以App Direct Mode (应用直接访问模式&…

caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片
经过前面两篇博文的学习,我们已经训练好了一个caffemodel模型,并生成了一个deploy.prototxt文件,现在我们就利用这两个文件来对一个新的图片进行分类预测。 我们从mnist数据集的test集中随便找一张图片,用来进行实验。 #codingutf…

Android应用程序消息处理机制(Looper、Handler)分析(2)
我们再回到NativeMessageQueue的构造函数中,看看JNI层的Looper对象的创建过程,即看看它的构造函数是如何实现的,这个Looper类实现在frameworks/base/libs/utils/Looper.cpp文件中: Looper::Looper(bool allowNonCallbacks) : …

以下一些使用ASP.NET和VISUAL STUDIO.NET2003的经验和技巧
作者:未知 请作者速与本人联系1,不要在VS里直接复制ASPX文件,因为复制的时候,两个文件会使用同一个类文件,要复制的话,应该建空文件,然后复制页面和代码2,发在项目完工的时候,要想得到一个干净的,仅有必需文件的项目,可以用复制…

微软推出智能语音评测服务,注重解决四大技术障碍
今年5月,在微软开发者大会上,他们宣布推出智能语音评测服务。基于Azure云的认知服务平台,该服务涵盖语音识别、语音合成等技术,主要应用于各种教师评估、作业练习和语言学习等教学场景。 通过市场调研和反馈,他们将语…

这些编程语言程序员工资最高!Java才第四
在众多行业中,程序员属于高薪职业。无论是在国外还是国内,程序员的薪金水平普遍高于其他行业的工作岗位。 高薪的诱惑和充满挑战性的工作,令程序员一直成为备受欢迎的职业。在今年年初,Glassdoor发布的一份调查报告指出ÿ…

仔细选择会话状态提供程序
ASP.NET 为存储应用程序的会话数据提供了三种不同的方法:进程内会话状态、作为 Windows 服务的进程外会话状态和 SQL Server 数据库中的进程外会话状态。每种方法都有自己的优点,但进程内会话状态是迄今为止速度最快的解决方案。如果只在会话状态中存储少…

10.VMware View 4.6安装与部署-view clint和view for ipad连接测试
安装基于 Windows 的 View Client,最终用户需要从物理机打开 View Client 来连接其虚拟桌面。您可以运行基于 Windows 的安装程序文件来安装 View Client 的所有组件。如果 View 管理员启用了某些显示选项,那么除了通过 View Client 访问虚拟桌面外,最终…
免费直播:主流深度框架对比:总有一款适合你~
常常有小伙伴在后台反馈:想了解深度学习该怎么学?自学难度大又没有效果,该怎么办?CSDN为了解决这个难题,联合唐宇迪老师为大家带来了一场精彩的直播【一节课掌握深度学习必备框架】。本次直播将带大家了解在开始深度学…

QCon2016旧金山大会焦点分享者确认
QCon旧金山大会是由InfoQ举办的连续十年的最大的英语会议,它将在今年11月7-9日在旧金山湾区举行。\\在QCon大会涵盖了一系列深入的技术,架构师、资深开发者所关注的国际事件,聚焦创新领域和软件发展趋势,QCon大会每年在美国、中国…
Git 看这一篇就够了
作者 |码农田小齐责编 | Carol封图 | CSDN 下载自视觉中国今天简单讲下 Git 的实现原理,知其所以然才能知其然;并且梳理了日常最常用的 12 个命令,分为三大类分享给你。本文的结构如下:作者和开发原由Git 的数据模型常用命令资源推…

当不使用会话状态时禁用它
并不是所有的应用程序或页都需要针对于具体用户的会话状态,您应该对任何不需要会话状态的应用程序或页禁用会话状态。 若要禁用页的会话状态,请将 Page 指令中的 EnableSessionState 属性设置为 false。例如,<% Page EnableSessionState&…

jepg图像的存储 转
先把代码贴上: extern "C" { #include "jpeglib.h" #pragma comment(lib,"libjpeg.lib") //把无压缩的图像数据(纹理)存储成jepg bool appSaveJpegRGB(char *filepath,unsigned char * data,int width,int hei…

使用Spring进行统一日志管理 + 统一异常管理
统一日志和异常管理配置好后,SSH项目中,代码以往散落的log.info() 和 try..catch..finally 再也不见踪影! 统一日志异常实现类: [java] view plaincopy package com.pilelot.web.util; import org.apache.log4j.Logger; impor…

避免到服务器的不必要的往返过程
虽然您很可能希望尽量多地使用 Web 窗体页框架的那些节省时间和代码的功能,但在某些情况下却不宜使用 ASP.NET 服务器控件和回发事件处理。 通常,只有在检索或存储数据时,您才需要启动到服务器的往返过程。多数数据操作可在这些往返过程间的…

OPPO和微软合作,开放“召唤小冰”
6月24日,OPPO与微软共同宣布,OPPO手机智能助理Breeno语音开放“召唤小冰”能力一年之际,双方合作再次深化。微软小冰与OPPO Breeno团队加速合作,不断打造和更新更符合OPPO生态的AI技能,提升微软小冰在Breeno语音中的产…

如果你即将死去
如果你即将死去,你是否能够安息; 如果你即将死去,你是否还有事情不能放弃; 如果你即将死去,你的事业是否有人继续; 如果你即将死去,你的生平是否还有人惦记; 死亡是所有生命的终点&a…

设计模式(行为型模式)——备忘录模式(Memento)
2019独角兽企业重金招聘Python工程师标准>>> 本章讲讲第三类和第四类。 备忘录模式(Memento) 主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些,通俗的讲下…

当你累了,准备放弃时,看看这个吧!!!
当你累了,准备放弃时,看看这个吧!!! 在朋友空间看到这篇文章,送给所有还在坚持的朋友~~每个人都背负着一个沉重的十字架,在缓慢而艰难地朝着目的地前进。途中,有一个人忽然停了下来。…

只在必要时保存服务器控件视图状态
自动视图状态管理是服务器控件的功能,该功能使服务器控件可以在往返过程上重新填充它们的属性值(您不需要编写任何代码)。但是,因为服务器控件的视图状态在隐藏的窗体字段中往返于服务器,所以该功能确实会对性能产生影…
超越英伟达的,不会是另一款GPU!中国公司发布首款数据流AI芯片
2020年6月23日,鲲云科技在深圳举行产品发布会,发布全球首款数据流AI芯片CAISA,定位于高性能AI推理,已完成量产。鲲云通过自主研发的数据流技术在芯片实测算力上实现了技术突破,较同类产品在芯片利用率上提升了最高11.6…