There is no vgg16_features folder in the provided A3D dataset.
Mikivishy opened this issue · 5 comments
嗨,你好我是一个初学者,对你的这个工作很感兴趣。我在下载数据集时发现,您在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
想知道是我哪个步骤出现问题了么,期待您的解答,十分感谢。
@mkkk1112
感谢关注!应该是我漏掉了上传feature文件,我已经把vgg16_features.tar.gz
上传了。你下载解压到相同的目录,应该就可以看到vgg16_features/test.txt
了
@mkkk1112 感谢关注!应该是我漏掉了上传feature文件,我已经把
vgg16_features.tar.gz
上传了。你下载解压到相同的目录,应该就可以看到vgg16_features/test.txt
了
感谢您的回复与上传,十分感谢!
很抱歉再次打扰您,但是我在运行示例命令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 test_eval
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个百分点,请问提供的是效果最好的模型吗,还是需要继续进行额外的训练。
十分期待您的回答!!!
@mkkk1112 感谢指出这些问题!
- 关于dad数据集的checkpoints,可能确实是上传错文件了。我重新去找了一些历史checkpoints,可以试试上传的这个文件,作为dad数据集的pretrained model,但不确定对不对,您可以试一下。
- 在a3d和crash上面的模型应该是对的,误差可能是来自于当时没有固定种子点:)