开始学EGNN的时候打算拿github上面的代码直接下载下来跑
github:vgsatorras/egnn
自己没有好的GPU所以在AutoDL上租了一个服务器
虽然是很简单的代码还是尝试了很久才成功跑通。
原来的代码可能是因为比较老的缘故,所以有一些问题。
在这里主要进行一个如何在python3.12版本下跑通3个数据集所需要进行的修改
QM9数据集
遇到的问题主要是QM9数据集下载
直接运行代码可能会报错出现原网页403的情况
所以有两种解决办法:
1.在AutoDL上部署agent
但是仍然出现了以上报错,无解,但是后来我检查文件夹时发现确实下载了,可能是代理的网也不太稳定的缘故。
但是这个部署的功能还是可以学习一下
2.手动下载数据集上传
因为一开始不知道数据集默认存放地址,所以翻了一下代码。
(1)文件修改
在…\egnn\qm9\args.py(…代表存放文件夹的位置)里面找到datadir的默认地址:
当然也可以通过命令行指定存放位置。
然后进入:
…\egnn\qm9\data\prepare\qm9.py
在原代码的基础上进行一些修改
在这里能找到数据集下载地址,以及一些必要文件(txt)的下载。
(2)数据集下载和传输
在上面图片列出的链接中下载数据(需要magic)
然后将数据集上传到datadir指定的文件夹
数据的传输推荐:FileZilla
然后就能成功运行代码了
一些小bug:
运行时可能报错,有一处因为原代码numpy版本过低,跟我自己的版本不兼容了,需要做一些修改
按照报错修改即可。
因为程序中有些部分存在clean-up,所以在运行时会删除上面两个txt数据文件,当发现数据文件夹里面没有这两个文件的时候需要重新上传。
nbody数据集
因为是纯小白所以对数据集不太了解。发现这个数据集实际如下:
nbody数据来源:通过计算机模拟生成,依据多体动力学的物理原理,模拟多个物体在相互作用力(如引力、电磁力等)下的运动。
数据内容:记录每个物体在不同时间步长下的位置、速度、加速度等状态信息,还可能包含物体的质量、电荷等属性 ,以及物体之间的连接关系(边)等。
所以首先要运行…/egnn-main/n_body_system/dataset/generate_dataset.py去生成数据。
然后再运行nbody_main.py即可
ae
主要问题是需要对代码做一些修改,原来的代码不知道为什么,应该是在子图划分处理上有一些小问题。对…/egnn-main/ae_datasets/d_creator.py进行修改后运行main_ae.py即可。
修改如图: