Cogito2012 / UString

[ACM MM 2020] Uncertainty-based Traffic Accident Anticipation
MIT License
63 stars 18 forks source link

There is no vgg16_features folder in the provided A3D dataset. #30

Closed mkkk1112 closed 7 months ago

mkkk1112 commented 7 months ago

嗨,你好我是一个初学者,对你的这个工作很感兴趣。我在下载数据集时发现,您在readme中提供的处理好的a3d数据集当中没有vgg16_features文件夹,只有detections和frame_labels文件夹。 因此当我运行以下命令:bash run_train_test.sh test 0 a3d 10 会出现报错:

Traceback (most recent call last): File "main.py", line 482, in test_eval() File "main.py", line 367, in test_eval test_data = A3DDataset(data_path, p.feature_name, 'test', toTensor=True, device=device, vis=True) File "/home/shy/codes/UString/src/DataLoader.py", line 108, in init self.files_list, self.labels_list = self.read_datalist(data_path, phase) File "/home/shy/codes/UString/src/DataLoader.py", line 126, in read_datalist assert os.path.exists(list_file), "file not exists: %s"%(list_file) AssertionError: file not exists: ./data/a3d/vgg16_features/test.txt

想知道是我哪个步骤出现问题了么,期待您的解答,十分感谢。

Cogito2012 commented 7 months ago

@mkkk1112 感谢关注!应该是我漏掉了上传feature文件,我已经把vgg16_features.tar.gz上传了。你下载解压到相同的目录,应该就可以看到vgg16_features/test.txt

mkkk1112 commented 7 months ago

@mkkk1112 感谢关注!应该是我漏掉了上传feature文件,我已经把vgg16_features.tar.gz上传了。你下载解压到相同的目录,应该就可以看到vgg16_features/test.txt

感谢您的回复与上传,十分感谢!

mkkk1112 commented 7 months ago

很抱歉再次打扰您,但是我在运行示例命令bash run_train_test.sh test 0 dad 10时,会发生如下报错: Traceback (most recent call last): File "main.py", line 518, in test_eval() File "main.py", line 448, in testeval model, , _ = load_checkpoint(model, filename=p.model_file, isTraining=False) File "main.py", line 220, in load_checkpoint model.load_state_dict(checkpoint['model']) File "/home/shy/miniconda3/envs/py37/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1052, in load_state_dict self.class.name, "\n\t".join(error_msgs))) RuntimeError: Error(s) in loading state_dict for UString: Missing key(s) in state_dict: "enc_gcn1.weight", "enc_gcn2.weight". Unexpected key(s) in state_dict: "enc_layer1.weight", "enc_layer2.weight".

我仔细阅读了您的代码有关这一部分的逻辑,您在readme中指出应该将模型文件放到output/UString/vgg16/snapshot/final_model.pth,但是您代码的逻辑是去output/UString/vgg16/数据集名称/snapshot/final_model.pth中去加载checkpoint,因而我如此去做了,在跑a3d和crash数据集用上述命令进行测试时,不会发生错误,并且我在将output/UString/vgg16/snapshot/final_model.pth去除后代码也能正常运行,这引起了我的兴趣,后来我发现如果按照您的文件夹位置放checkpoint,会返回'=> no checkpoint found at 'output/UString/vgg16/dad/snapshot/final_model.pth',但是代码也可以跑,这是因为代码直接使用一个随机化参数的UString实例模型运行测试代码,这就不会遇到上面的报错(因为根本没有加载checkpoint),但这也导致测试效果不是很好。

因而我有如下几个问题: 1、readme中的模型默认存放位置应该改为output/UString/vgg16/数据集名称/snapshot/final_model.pth,不然是使用一个随机化参数的模型运行,也不会遇到我提到的第二个问题。具体可以去main.py的test_eval函数和load_checkpoint函数中查看。 2、您提供的关于dad数据集的pretrained模型不能正确运行,就像上述报错所示,模型内部的层名称无法对应,这可能是您之前的某个版本的模型。我也检查了您的Models.py,确实是定义的是enc_gcn1.weight, enc_gcn2.weight。这个问题只发生在dad的pretrained模型上。 3、提供的a3d和crash的pretrained模型与您的论文结果有一点小出入,AP效果会相差1-2个百分点,请问提供的是效果最好的模型吗,还是需要继续进行额外的训练。

十分期待您的回答!!!

Cogito2012 commented 7 months ago

@mkkk1112 感谢指出这些问题!

mkkk1112 commented 7 months ago

@mkkk1112 感谢指出这些问题!

  • 关于dad数据集的checkpoints,可能确实是上传错文件了。我重新去找了一些历史checkpoints,可以试试上传的这个文件,作为dad数据集的pretrained model,但不确定对不对,您可以试一下。
  • 在a3d和crash上面的模型应该是对的,误差可能是来自于当时没有固定种子点:)

十分感谢您的回复!!祝您工作顺利,万事如意!!!