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

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

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

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

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

  1. python run_seq_labeling.py --data_dir data
  2. --model_type layoutlm
  3. --model_name_or_path path/to/pretrained/model/directory
  4. --do_lower_case
  5. --max_seq_length 512
  6. --do_train
  7. --num_train_epochs 100.0
  8. --logging_steps 10
  9. --save_steps -1
  10. --output_dir path/to/output/directory
  11. --labels data/labels.txt
  12. --per_gpu_train_batch_size 16
  13. --per_gpu_eval_batch_size 16
  14. --fp16

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

  1. python run_seq_labeling.py --do_predict
  2. --data_dir data1
  3. --model_type layoutlm
  4. --model_name_or_path output_
  5. --do_lower_case
  6. --output_dir predictions1
  7. --labels data1/labels.txt

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

  1. python run_seq_labeling.py --data_dir infer_data
  2. --model_type layoutlm
  3. --model_name_or_path output_method1
  4. --do_lower_case
  5. --do_eval
  6. --output_dir output_eval1
  7. --labels infer_data/labels.txt

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

  1. python run_seq_labeling.py --data_dir data_method2
  2. --model_type layoutlm
  3. --model_name_or_path model
  4. --do_lower_case
  5. --max_seq_length 512
  6. --do_train
  7. --num_train_epochs 10.0
  8. --logging_steps 10
  9. --save_steps -1
  10. --output_dir output_method2
  11. --labels data_method2/labels.txt
  12. --per_gpu_train_batch_size 16
  13. --per_gpu_eval_batch_size 16
  14. --fp16

相关问题