unilm Demo: adding visual embeddings to LayoutLM

cbjzeqam  于 3个月前  发布在  其他
关注(0)|答案(7)|浏览(66)

在此次仓库中,有一个非常受欢迎的功能/问题是“如何将视觉嵌入添加到LayoutLM?”。我自己也想知道这是如何工作的,所以(正好赶上LayoutLM 2.0的发布),这里有一个笔记本,它在FUNSD数据集上微调LayoutLM,从而从预训练的ResNet-101 Backbone 网络(如论文中所做)添加视觉嵌入:
https://github.com/NielsRogge/Transformers-Tutorials/blob/master/LayoutLM/Add_image_embeddings_to_LayoutLM.ipynb
首先,将文档图像调整为3x224x224并通过预训练的ResNet-101获得形状为(1024x14x14)的特征图。接下来,我使用ROI-align将原始文档图像的每个边界框转换为形状为(1024x3x3)的特征图,然后将其展平并线性投影以匹配LayoutLM的hidden_size(基本模型为768)。我假设作者使用了类似的东西(要么是Faster-R-CNN中的ROI-pooling,要么是稍后引入并改进性能的ROI-align)。ResNet模型的参数在训练过程中更新,因此我们实际上是在与LayoutLM一起微调它。
通过添加这些视觉特征,我能够在测试集上提高性能,与仅使用文本+布局(边界框)信息相比,大约提高了以下指标:
'precision': 0.8053668087066682, 'recall': 0.8163670324538874, 'f1': 0.8108296133109165
相关问题:
#201
#95
#265
#80
#243
#286
#285
#249
#165
#97
#163

monwx1rj

monwx1rj1#

@NielsRogge 干得漂亮,感谢分享!
没有图像特征的f1分数是多少?

jhkqcmku

jhkqcmku2#

你好,谢谢你!
如我在earlier notebook中所示,性能如下:
'precision': 0.7239292364990689, 'recall': 0.7778889444722361, 'f1': 0.7499397154569568
请注意,我之前使用的笔记本使用了BIOES标注,现在我使用更简单的BIO标注。

pobjuy32

pobjuy326#

您为NLP/NLU社区所做的工作,尤其是为我们这些试图将这些论文应用于实际案例的人提供帮助,非常有帮助!非常感谢并继续保持良好的工作。

0ejtzxu1

0ejtzxu17#

这是团队用来产生SOA结果的确切算法吗?
顺便说一下,干得好,谢谢!

相关问题