尝试使用预训练时,广播输入数组形状错误不正确

问题描述 投票:0回答:1

我正在尝试使用spacy的'pre-train'功能进行NER任务,所以这是我尝试做的(我仍在尝试使用它),

第1步:我首先使用'en_core_web_lg'初始化模型然后将此模型保存到磁盘并在几行上测试其NER功能,以查看它是否识别这些测试行中的标记。 (记下忽略的标签)

第2步:接下来我创建了一个带有要训练的新数据的.jsonl文件(大约20个新行,我希望看到模型的功能给定实体周围的新数据(之前发现的忽略标签),它能够正确识别标签之后做转移学习)。所以使用这个.jsonl和我之前保存的模型我使用'spacy pre-train'命令进行训练,这为我创建了一个token2vec .bin文件(model999.bin)。

步骤3:接下来,我创建了一个函数,该函数获取先前保存的模型(步骤1中保存的模型)的位置和token2vec的位置(在步骤2中获得的model999.bin文件)。在函数内部,它加载模型>创建/获取管道>禁用其余文件>使用(pipe_name).model.tok2vec.from_bytes(file_.read())从model999.bin读取并将学习的向量广播到基本模型。

但是当我运行这个函数时,我得到了这个错误:ValueError: could not broadcast input array from shape (96,3,384) into shape (96,3,480)(我已经在这里上传了整个笔记本:[https://github.com/pratikdk/ner_test/blob/master/base_model_contextual_TF.ipynb])。

为了预训练,我使用了这个功能python -m spacy pre-train ub.jsonl model_saves w2s

以下是我尝试在基础模型上训练的20条线[https://github.com/pratikdk/ner_test/blob/master/ub.jsonl]

这到底我做错了什么?请你也指出修复,我相信很多人需要对此有所了解。

环境

  • 操作系统:CentOS
  • 使用的Python版本:3.7.3
  • 使用spaCy版本:2.1.3
  • 环境信息:Anaconda Jupyter Lab
spacy
1个回答
0
投票

所以我能解决这个问题,开发人员(在github上)回答了我的问题。这是答案:https://github.com/explosion/spaCy/issues/3616

© www.soinside.com 2019 - 2024. All rights reserved.