TrajDL - 基于深度学习的轨迹序列算法包#
Attention
在1.0.0版本发布前,当前文档的内容可能会发生变化。
English documentation will be provided in subsequent versions.
TrajDL提供了轨迹数据挖掘领域中的多个SOTA深度学习模型的实现,为研究人员、工程师提供易用、高效、可靠的开发工具,可以快速开展实验和应用开发。
- 基于Arrow,Pytorch和Lightning
TrajDL的数据部分构建在Arrow之上,模型部分构建在Pytorch之上,训练与验证流程构建在Lightning之上,充分结合各个框架工具的优势。- 高效的工具
TrajDL提供了高效的工具,比如高效的Dataset,Tokenizer,GridSystem。出色的零拷贝特性可以显著降低数据的处理时间,节省内存使用。高效的Tokenizer和GridSystem可以随时转换数据,无需预先处理数据。- 可扩展性
TrajDL高度模块化,不会约束用户的代码,用户可以随时从TrajDL里面取出自己需要使用的工具。TrajDL还打通了与Polars,Pandas,PyArrow等工具的接口,用户使用常用的科学计算工具处理后的数据可以轻松导入到TrajDL的数据体系。另外TrajDL同时支持API与配置文件两种方式开展实验与开发,尽可能提升用户体验。- SOTA模型的实验复现脚本
TrajDL提供了SOTA模型的复现脚本,用户可以通过脚本重现论文内的实验结果,部分场景下TrajDL具备比论文场景更优的效果。
TrajDL提供了公开数据集的管理工具,用户可以轻松下载公开数据集开展自己的实验,内置的缓存功能可以显著加快实验速度。
同时TrajDL还提供了基于Arrow的高效数据管理工具,可以帮助用户从不同粒度实现序列数据的管理,其出色的扩展性支持用户直接导入Polars,Pandas,PyArrow处理后的数据,训练过程中也不会因为多进程导致数据的拷贝复制,显著节省内存。
TrajDL提供了高效的Tokenizer与网格系统GridSystem。Tokenizer可以快速完成Vocabulary的构建,Special Tokens的管理,快速的位置映射。GridSystem可以将区域划分成网格,将经纬度转换成位置id。Tokenizer与GridSystem都有多种类型可以选择。
基于Lightning构建的TrajDL可以快速开展轨迹序列数据上深度学习的实验,Lightning Trainer,Lightning Fabric两种方式用户可以自行选择,通过API控制模型的训练与评估。LightningCLI让训练验证通过配置文件快速启动。TrajDL提供了封装好的DataModule和SOTA模型,用户只要几行代码就可以快速拉起实验。