论文标题:《Spatio-Temporal Self-Supervised Learning for Traffic Flow Prediction》
复现论文地址(包含paper+code):https://paperswithcode.com/paper/spatio-temporal-self-supervised-learning-for
1、本机复现:
(1)download后zip后,将其放到pycharm_projects文件夹中,打开pycharm,查看requirement.txt文件,需要什么包;
(2)打开终端,创建虚拟环境:
创建环境:conda create --name ST-SSL-main python=3.8.20
激活(进入)环境:conda activate ST-SSL-main
创建所需包:pip install numpy == 1.21.2 pandas == 1.3.5 PyYAML == 6.0
pytorch需要去官网查命令单独安装:conda install pytorch == 1.10.1 torchvision == 0.11.2 torchaudio == 0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
注: torch安装的时候如果一直下载一半,可以重复输入命令,慢慢就下载好了。
(3)代码即可运行,实验结果如下:
原论文代码的实验结果差不多是5,这里需要跑多个epoch,转战云服务器。
2、云端复现:
运行平台(并行智算云):https://ai.paratera.com/#/cloud/compute/add
(1)创建云服务器:根据自己的需求,创建所需要的虚拟机。(云服务器本质上就是租用一台远程电脑)
点击“立即创建”后,即能看到自己创建好的云服务器。
(2)为了加载数据,我们需要下载WinSCP(便于传输我们的数据),根据上图中的登录信息,以此填入“主机名”,“用户名”,“密码”,将我们本地连接到服务器端。
左侧为我们本地,右侧为我们的服务器端,接下来我们可以将ST-SSL-main放到我们服务器的文件夹中,
等待传输完成,即可开始下一步任务。
(3)打开我们的远程服务器,准备部署需要的环境,
安装我们所需要的库,等待安装完成。。。
当所需库全部安装完成后,开始跑我们的主程序,输出结果即为成功,
我们程序的运行结果保存在NYCBike1文件目录下,
并并行一个反向传播,将服务器运行的结果全部传回本地,即为实验成功。
总结
当复现代码时,为了节省资源(省钱),我们需要先在本地上把代码调试成功,而且在我们的程序中一定要保存我们的运行结果,即可开始在云服务器上跑程序,在程序运行完后,利用WinSCP将代码运行结果传回我们的本地。