Deep learning platform of railway passenger transport marketing based on Kubernetes
-
摘要: 为解决铁路客运营销深度学习平台Tensorflow框架存在的环境配置复杂,资源利用率低、模型设计周期长等问题,提出了基于Kubernetes容器的PaaS平台构建TensorFlow容器的统一资源调度管理及API访问控制服务架构。经平台实践证明,该架构为客运营销提供了可靠、稳定的分析环境,降低了模型的训练难度,提高了模型的训练效率。
-
关键词:
- 铁路客运营销 /
- 深度学习平台 /
- 模型训练 /
- Kubernetes /
- Tensorflow
Abstract: In order to solve the problems of complex environment configuration, low resource utilization and long model design cycle existing in Tensorflow framework of the deep learning platform for railway passenger marketing, this paper proposed a PAAS platform based on Kubernetes container to build a unified resource scheduling management and API access control service framework of Tensorflow container. The platform practice shows that the framework provides a reliable and stable analysis environment for passenger transport marketing, reduces the training difficulty of the model, and improves the training efficiency of the model. -
铁路枢纽位于铁路网的交汇点,由多条线路、多个车站及其他设施、设备组成。若用文本或表格等形式表现其结构特征和信息,不易表述清晰,且在枢纽车站布局、规模、联络线设置[1]等设计方案发生改变时,设计人员难以直观地考察各方案的枢纽客货运输能力的情况。因此,需要通过图形化界面向用户演示枢纽的结构特征,以及线路、车站等实体及其属性[2],并对枢纽能力进行计算。根据不同设计方案生成铁路枢纽客货运输能力结果,并通过图形化界面显示给用户,便于用户查看各种设计方案对应的枢纽能力,从而对枢纽设计方案有更清晰、直观的理解[3-4]。
因此,本文结合我国铁路枢纽设计研究的实际情况[5],利用AutoCAD的铁路枢纽网络设计文件,生成数字化的铁路枢纽网络[6],为研究铁路枢纽结构、优化铁路枢纽布局提供数据支撑[7-9]。
1 铁路枢纽设计文件格式
AutoCAD计算机辅助设计软件广泛应用于二维绘图和三维设计等领域。它的数据文件主要有DWG、DWS和DXF等格式。其中,DXF为文本形式,保存了AutoCAD有关图素的详细信息,是普遍使用的AutoCAD外部接口文件。
1.1 DXF文件结构
DXF文件主要由标题段(Header)、表段(Tables)、块段(Block)、实体段(Entities)和文件结束段(Eof,End of file)5部分组成。
DXF利用行存储数据,每2行为1组,第1行为组的代码,第2行为组的值,1个组代表1个数据,本文为了表述方便,将DXF文件的内容简化,如表1所示。虽然DXF文件结构复杂,但只要根据需求获取建模所需实体段就可以完成相应实体的提取。
表 1 信息表述样例DXF中信息格式 本文采用的表达形式 100
AcDbLayerRecord
2
京沪铁路100::AcDbLayerRecord
2::京沪铁路表1右侧是本文采用的形式,即将左侧DXF文件中用两行表示的组码和组值放在同一行中,并用“::”符号将两部分分开。
1.2 铁路枢纽网络设计样例
图1是AutoCAD软件绘制的某铁路枢纽的局部样例,为展示细节,将紫色框框定的部分区域放大。由图1可看出,用AutoCAD设计的枢纽图中,主要有2种图素:线条和文字。线条都是由多段线(pline)绘制的,包括2种:用闭合的6边形表示车站;用不同颜色的线条表示铁路线路。文字是单行文字(dtext),是对闭合6边形的标注,表示车站名称。
设计人员在生成枢纽图时,利用AutoCAD图形分层组织的特性,将不同的线路绘制在不同的图层上,为枢纽网络数字化建模提供了较大便利。
2 DXF枢纽网络图信息格式
2.1 线路信息
由于不同的线路存储在不同的层上,且用线路名命名图层,所以只需从DXF中读出层的定义就可得到枢纽范围内的线路信息。层的定义在表段只出现一次。DXF文件中的图层信息格式如下:
100::AcDbSymbolTableRecord
100::AcDbLayerTableRecord
2::京沪铁路
70::0
62::7
6::Continuous
…
其中,“100::AcDbSymbolTableRecord”是符号定义;“100::AcDbLayerTableRecord”表示后续若干信息是对1个图层的描述;“2::京沪铁路”中“京沪铁路”是图层的名称;“62::7”表示图层的颜色。第4、6行信息本文没有采用,因此没有给出说明(后面DXF文件信息格式中没有用到的信息也一并忽略)。
2.2 车站名称
车站名称是单行文字,存储在实体段,且隶属于指定图层。单行文字信息格式如下:
100::AcDbText
10::2235.15
20::1258.66
30::0.0
40::1.35
1::高里
…
其中,“100::AcDbText”引导一个单行文字信息;“10::2235.15”表示单行文字的 x 坐标;“20::1258.66”表示单行文字的 y 坐标;“30::0.0”表示单行文字的 z 坐标;“40::1.35”表示文字的高度;“1::高里”表示单行文本信息是“高里”。
2.3 车站外型
车站外型是用多段线绘制的六边形,存储在实体段,且隶属于指定图层。车站外型信息格式如下:
100::AcDbPolyline
90::6
70::1
43::0.03
10::2349.62
20::1308.79
10::2349.74
20::1308.98
…
其中,“100::AcDbPolyline”引导一条多段线信息;“90::6”表示多段线由6 个点组成;“70::1”表示多段线闭合;组码10和组码20表示一个点的(x,y)坐标,本文列出了多段线经过的2个点的(x,y)坐标,后面的点省略。
2.4 线路组成
2.4.1 直线绘制
铁路线路用多段线绘制,存储在实体段,且隶属于指定图层。区间线路信息格式如下:
100::AcDbEntity
8::京沪铁路
370:: 5
100::AcDbPolyline
90:: 5
70:: 0
43::0.05
10::2256.50
20::1265.77
…
其中,“100::AcDbEntity”表示当前在实体段;“8::京沪铁路”表示后面的信息属于图层“京沪铁路”;“100::AcDbPolyline”表示这是一条多段线;“70:: 0”表示多段线不闭合;组码10和组码20给出了多段线的第1个点的坐标(x,y)的值。
2.4.2 曲线绘制
在绘制多段线时,有时会插入曲线,区间线路信息中有圆弧的信息格式如下:
100::AcDbEntity
8::京沪铁路
370:: 5
100::AcDbPolyline
90::5
70::0
43::0.05
10::2260.10
20::1261.57
10::2260.28
20::1261.22
42::0.18
10::2261.72
20::1259.86
...
其中,“42::0.18”表示一段圆弧,它的凸度是0.18,这个值是该圆弧所对圆心角的1/4角的正切值,如图2所示。
图2中,圆弧
$ {\overset{\frown} {ACB}}$ 对应的圆心角为$\alpha $ ,其凸度$f$ 的计算公式如式(1):$$ {f}_{{\overset{\frown} {ACB}}}=\mathrm{tan}\left(\frac{\alpha }{4}\right)=\frac{{{h}}}{s}$$ (1) 建模时,为了降低模型的复杂度,可把多段线中的曲线部分分割成若干段小的折线,将区间线路统一用折线表示。
3 数字化枢纽网络模型
建立数字化的铁路枢纽网络模型,需从DXF文件中读取铁路枢纽有价值的信息,把线路、车站、区间等实体的特征数据合理、有效地组织、关联起来,生成既相对独立又相互联系的有机整体,为后续研究工作提供数据支持。
3.1 数据结构定义
(1)线路索引数据结构
如表2所示,线路ID通过人工分配;线路名称来自DXF接口文件,数据长度为49;线型和颜色可继承DXF中对应的涂层的线性和颜色值;年度/车种是否可用信息则需要通过信息加工模块补充完善。
表 2 线路索引数据结构字段名称 数据类型 说明 iID 整型 线路ID sName 字符 线路名称 iLineType 整型 线型:实线、虚线等 iColor 整型 显示颜色 iStage 整型 对应年度是否可用 iClass 整型 对应车种是否可用 (2)车站信息数据结构
如表3所示,fPnts记录的六边形顶点坐标来自DXF文件中的闭合多段线信息;车站名称来自DXF文件的单行文本信息,数据长度为49,但文本信息与车站的绑定需要经信息加工模块人工完成;车站类型需人工定义。
表 3 车站信息数据结构字段名称 数据类型 说明 iID 整型 车站ID sName 字符 车站名称 fPnts[6][2] 实型 顶点坐标 iClass 整型 车站类型 (3)区间线路组成信息数据结构
表4中所有字段信息都来自DXF文件相应内容。
表 4 区间线路组成信息数据结构字段名称 数据类型 说明 iID 整型 区间ID iLineID 整型 所属线路ID fPntF [2] 实型 起点坐标 fPntT [2] 实型 止点坐标 fPnts[][2] 实型 起点与止点间的点 (4)车站区间连接信息数据结构
如表5所示,当AutoCAD格式的设计资料较规范时(区间线路的端点都落在六边形内),则iStaFID和iStaTID可在模型生成时自动填入;区间线路的运营方向则需通过信息加工模块后期人工赋值。
表 5 车站区间连接信息数据结构字段名称 数据类型 说明 iSecID 整型 区间ID iStaFID 整型 起点连接的车站ID,−1表示未连接 iStaTID 整型 止点连接的车站ID,−1表示未连接 iDir 整型 区间线路运营方向,0表示未定义; 1:从起点到止点单向
运营;2:双向运营;3:从止点到起点单向运营。3.2 铁路枢纽网络数字化模型生成
根据铁路枢纽实体的特征数据在DXF文件中不同的表现形式,设计并编制图层处理模块、多段线处理模块和单行文字处理模块,提取实体的关键信息,生成网络数字模型,该方法的架构如图3所示。
模型生成阶段,通过批量读入DXF接口文件,生成铁路枢纽网络数字化模型的主要数据,同时,利用信息加工模块补充区间线路运营方向、线路的年度/车种运用属性等AutoCAD设计资料中不能体现的数据。
信息加工模块提供对车站、线路等实体的修改功能,在没有DXF文件时也能创建网络模型。
3.3 网络模型应用
设计专业的人员根据研究的需要,在网络数字化模型基础上叠加业务数据,计算评价指标,分析网络可能存在的问题,探寻优化方案。如图4所示,在网络模型基础上,根据线路的功能和径路的费用分配列流,计算并展示线路的能力利用率。
图4中用颜色定性地表示线路能力利用率,也可以添加标注的形式,定量显示线路的运量和利用率。该铁路枢纽网络数字化模型数据信息主要来自DXF文件,区间线路和车站的连接关系(图4紫框部分)由信息加工模块批量添加,区间线路的运营方向(图4绿框部分)在信息加工模块经人机交互加入。
4 结束语
本文设计的基于DXF接口文件的铁路枢纽网络数字化模型生成方法,已基于VS2013编码实现,并应用于铁路枢纽能力检算图形化系统中。使用结果表明:本文设计的方法,可以准确地读取铁路线路、车站和区间线路的组成信息,经过信息加工模块的辅助处理,生成完整的铁路枢纽网络数字化模型,建模便捷、数据完整,能够为研究、评价铁路枢纽提供数据支撑。
-
表 1 物理机配置
主机 Cpu 内存 磁盘 Kubernetes-1 16 core 256 GB内存 2*1.92 TB SSD硬盘 Kubernetes-2 16 core 256 GB内存 2*1.92 TB SSD硬盘 Kubernetes-3 16 core 256 GB内存 2*1.92 TB SSD硬盘 Kubernetes-4 16 core 256 GB内存 2*1.92 TB SSD硬盘 Kubernetes-5 16 core 256 GB内存 2*1.92 TB SSD硬盘 表 2 运行情况对比
TensorFlow部署类型 部署及调试耗时 训练耗时 单机部署 12 min 128 min 分布式部署 68 min 64 min 容器化部署 23 min 58 min -
[1] 张军锋. 铁路旅客用户画像系统设计与应用研究 [J]. 铁路计算机应用,2018,27(7):62-65. [2] 翁湦元,单杏花,阎志远,等. 基于Kubernetes的容器云平台设计与实践 [J]. 铁路计算机应用,2019,28(12):49-53. [3] 本刊讯. 谷歌推出TensorFlow 1.4版本:支持分布式训练 [J]. 数据分析与知识发现,2017(11):56. [4] 单杏花,卫瑞明,王炜炜,等. 铁路客运营销辅助决策系统及关键技术研究 [J]. 铁路技术创新,2015(2):123-127. [5] Abadi Martín, Barham Paul, Chen Jianmin, et al. TensorFlow: A system for large-scale machine learning [J]. USENIX Symposium on Operating Systems Design and Implementation, 2016(16): 265-283.
[6] 盛乐标,周庆林,游伟倩,等. Kubernetes高可用集群的部署实践 [J]. 电脑知识与技术,2018,14(26):40-43. [7] Peinl R, Holzschuher F, Pfitzer F. Docker Cluster Management for the Cloud - Survey Results and Own Solution[J]. Journal of Grid Computing, 2016,14(2): 265-282.
[8] Olston C, Fiedel N, Gorovoy K, et al. TensorFlow-Serving: Flexible, High-Performance ML Serving [J]. Conference and Workshop on Neural Information Processing Systems, 2017, 3(2): 1-8.
[9] 余昌发,程学林,杨小虎. 基于Kubernetes的分布式TensorFlow平台的设计与实现 [J]. 计算机科学,2018,45(z2):527-531. -
期刊类型引用(1)
1. 朱涛,董鹏,朱贺,齐胜. 基于标记技术的强制访问控制模型设计与应用. 铁路计算机应用. 2022(01): 55-60 . 本站查看
其他类型引用(0)