unilm LayoutLM序列标注任务:在自定义数据集上进行预测/推理时出现Assert错误(评估时也出现相同错误)

bxgwgixi  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(61)

你好,
当我在自定义测试数据上运行LayoutLM序列标注任务的推理/预测时,遇到了以下错误。当我在自定义测试数据上运行评估时也会出现这种情况。如果我只使用默认的训练和测试集,一切都会顺利进行。请问有人能建议我正确实现这个的方法吗?因为我目前卡在这里了。我已经尝试了多种方法,但都会导致相同的错误。

根据以下链接,我已经对run_seq_labeling.py进行了一些修改以便运行。

方法1a)
步骤1) 训练。请注意,文件夹“data”包含训练数据和原始测试数据。

python run_seq_labeling.py --data_dir data 
--model_type layoutlm 
--model_name_or_path path/to/pretrained/model/directory 
--do_lower_case 
--max_seq_length 512 
--do_train 
--num_train_epochs 100.0 
--logging_steps 10 
--save_steps -1 
--output_dir path/to/output/directory 
--labels data/labels.txt 
--per_gpu_train_batch_size 16 
--per_gpu_eval_batch_size 16 
--fp16

步骤2) 推理/预测。请注意,文件夹“data1”包含自定义测试数据。

python run_seq_labeling.py --do_predict 
--data_dir data1 
--model_type layoutlm 
--model_name_or_path output_ 
--do_lower_case 
--output_dir predictions1 
--labels data1/labels.txt 

结果:Assert错误
方法1b)
步骤1) 训练。与方法1a相同。
步骤2) 评估。

python run_seq_labeling.py --data_dir infer_data 
--model_type layoutlm 
--model_name_or_path output_method1 
--do_lower_case 
--do_eval 
--output_dir output_eval1 
--labels infer_data/labels.txt 

结果:Assert错误
步骤3) 推理(由于步骤2中的错误无法执行此步骤)
方法2a:
步骤1) 训练。将data_dir中的测试数据替换为infer(自定义)数据。

python run_seq_labeling.py --data_dir data_method2 
--model_type layoutlm 
--model_name_or_path model 
--do_lower_case 
--max_seq_length 512 
--do_train 
--num_train_epochs 10.0 
--logging_steps 10 
--save_steps -1 
--output_dir output_method2 
--labels data_method2/labels.txt 
--per_gpu_train_batch_size 16 
--per_gpu_eval_batch_size 16 
--fp16

相关问题