Closed HappyCpp closed 1 year ago
请问你是在哪个数据集上训练和测试的呢?报错信息看起来你是在FB15K237上训练,然后在FB15K237-20上进行evaluation的,这样因为FB15K237和FB15K237-20两个数据集中的实体个数不一致,会造成encoder.weight矩阵的shape对应不上——所以请保持训练与测试在同一个数据集上。
嗯嗯明白了,想问一下这个除了FB15K237的其他数据集在test时候的ckpt该怎么选择呢
test时候只需要把命令“CUDA_VISIBLE_DEVICES=0 python train.py --test --dataset FB15K237 --beam-size 256 --save-dir "model_1" --ckpt "ckpt_30.pt" --test-batch-size 8 --encoder --l-punish --no-filter-gen”中的--dataset FB15K237换成数据集的名称就可以了(注意--save-dir和--ckpt要与你训练时保存的模型路径一致)。--beam-size也是可以调的超参,这个可以按照论文附录里设置来复现文章汇报的效果。
明白了,谢谢大佬解答
错误代码 RuntimeError: Error(s) in loading state_dict for TransformerModel: size mismatch for encoder.weight: copying a param with shape torch.Size([15021, 256]) from checkpoint, the shape in current model is torch.Size([13646, 256]). 训练完进行测试为什么会显示大小不对呢