unilm How to run layoutxlm model using funsd data

mzillmmw  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(26)

描述bug

LayoutXLM
当使用以下内容时,问题会出现:

  • 自己的修改过的脚本:(详细说明如下)

一个清晰简洁的描述bug是什么。

预期行为

一个清晰简洁的描述你期望会发生什么。
代码如下:

export CUDA_VISIBLE_DEVICES=3
python3.7 examples/run_funsd.py \
        --model_name_or_path microsoft/layoutxlm-base \
        --output_dir ./output_funsd_ser \
        --do_train \
        --pad_to_max_length 1 \
        --max_steps 1000 \
        --warmup_ratio 0.1 \
        --fp16
  • 平台:Ubuntu 16.04
  • Python版本:3.7
  • PyTorch版本(GPU?):1.7.1+cu101

错误如下。

File "/usr/local/lib/python3.7/site-packages/transformers/trainer.py", line 1101, in train
    for step, inputs in enumerate(epoch_iterator):
  File "/usr/local/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 435, in __next__
    data = self._next_data()
  File "/usr/local/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 475, in _next_data
    data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
  File "/usr/local/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 47, in fetch
    return self.collate_fn(data)
  File "/paddle/code/unilm/layoutlmft/layoutlmft/data/data_collator.py", line 74, in __call__
    sequence_length = torch.tensor(batch["input_ids"]).shape[1]
ValueError: expected sequence of length 512 at dim 1 (got 572)

我打印了所有批次输入数据,长度为512,这里出现了572,非常奇怪。
似乎某些配置没有设置正确,但我无法找到原因,你能帮忙看一下吗?

h5qlskok

h5qlskok1#

我将max_length=512添加到函数参数列表中,问题得到了解决,这可能是一个bug。
unilm/layoutlmft/examples/run_funsd.py
第169行 8da9d55
| | truncation=True, |

相关问题