Libcity简介

LibCity是一个统一、全面、可扩展的代码库,为交通预测领域的研究人员提供了一个可靠的实验工具和便捷的开发框架。 基于 PyTorch 实现,并将与交通预测相关的所有必要步骤或组件包含到系统的流水线中,使研究人员能够进行全面的对比实验。 Libcity有助于交通预测领域的标准化和可复现性。[中文文档][Github]

代码和数据集准备

建议去官方的Github仓库Clone源码,官方提供了一些标准数据集(提取码1231)

另外经实测,产自同一课题组的其他工作,如PDFormer[Paper][Code],使用到的数据集也可以在这里使用。

Miniconda创建虚拟环境

建议使用Python3.8并使用pip安装Pytorch以外的软件包

conda create -n libcity-old python=3.8

安装Pytorch 1.7.1,注意CUDA11不能兼容CUDA10,如果nvidia-smi看到的CUDA Version是11.x或12.x,那么只能安装CUDA 11.0的。

# CUDA 9.2
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=9.2 -c pytorch

# CUDA 10.1
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch

# CUDA 10.2
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.2 -c pytorch

# CUDA 11.0
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch

# CPU Only
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cpuonly -c pytorch

之后使用pip安装其它的软件包

pip install -r requirements.txt --no-cache-dir

运行实验

第一次运行时报了类似下面的错误

TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

我使用了解决方法1,把protobuf的版本从4.x降到了3.20.x

pip install protobuf==3.20.*

之后即可正常运行,使用STResNet在CHIBike数据集上进行500epochs的训练

python run_model.py --task traffic_state_pred --model STResNet --dataset CHIBike --exp_id chibike

最后更新于 2023-10-19