save - 使用 Gensim 保存 FastText 自定义模型二进制文件
问题描述
我正在尝试保存使用 gensim 训练的自定义 FastText 模型。我想保存二进制文件以便有可能再次训练模型(如果可以的话)。
保存二进制文件的代码是下一个:
from gensim.models.fasttext import save_facebook_model
save_facebook_model(model,'own_fasttext_model.bin')
但是我在同一行中获得了下一个错误:
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-192-c9c2c41985af> in <module>
2 from gensim.models.fasttext import save_facebook_model
3
----> 4 save_facebook_model(model,'own_fasttext_model.bin')
/opt/conda/lib/python3.7/site-packages/gensim/models/fasttext.py in save_facebook_model(model, path, encoding, lr_update_rate, word_ngrams)
1334 """
1335 fb_fasttext_parameters = {"lr_update_rate": lr_update_rate, "word_ngrams": word_ngrams}
-> 1336 gensim.models._fasttext_bin.save(model, path, fb_fasttext_parameters, encoding)
/opt/conda/lib/python3.7/site-packages/gensim/models/_fasttext_bin.py in save(model, fout, fb_fasttext_parameters, encoding)
666 if isinstance(fout, str):
667 with open(fout, "wb") as fout_stream:
--> 668 _save_to_stream(model, fout_stream, fb_fasttext_parameters, encoding)
669 else:
670 _save_to_stream(model, fout, fb_fasttext_parameters, encoding)
/opt/conda/lib/python3.7/site-packages/gensim/models/_fasttext_bin.py in _save_to_stream(model, fout, fb_fasttext_parameters, encoding)
629
630 # Save words and ngrams vectors
--> 631 _input_save(fout, model)
632 fout.write(struct.pack('@?', False)) # Save 'quot_', which is False for unsupervised models
633
/opt/conda/lib/python3.7/site-packages/gensim/models/_fasttext_bin.py in _input_save(fout, model)
573
574 assert vocab_dim == ngrams_dim
--> 575 assert vocab_n == len(model.wv.vocab)
576 assert ngrams_n == model.wv.bucket
577
AssertionError:
关于可能发生什么的任何线索?
提前致谢。
解决方案
该.save_facebook_model()
方法是一个全新的功能。这AssertionError
通常表明存在一些错误:在当前状态下,断言与代码安全继续所预期或所需的内容相比存在矛盾。
如果您可以将一组小的、独立的步骤组合在一起可靠地创建错误,您可以将其报告给项目的错误跟踪器,网址为:
https://github.com/RaRe-Technologies/gensim/issues
(特别要确保在任何报告中查看并注意:该model
对象是如何创建/训练的?是否以任何非标准方式修改?)
推荐阅读
- r - 使用 mutate 比较两个数据帧的 For 循环
- java - SecurityConfig [Spring boot version 2.5.x]:为 ServerHttpSecurity 添加过滤器,仅用于安全 url
- swagger - 调用 nswag 生成的 WebAPI 客户端时查询字符串太长
- django - 包含“用户”作为 ManyToManyField 的 django 模型的单元测试
- android - 如何在 Kotlin 中访问通用类型的字段?
- python - 在 Python API 中重现 LightGBM 的“logloss”
- python - 使用 Selenium 和 Python 进行抓取时,YouTube 是否有 30 个视频限制?
- reactjs - 如何打开和关闭 Material UI 开关?
- javascript - 如何组织和使用 Web Components?
- latex - tex 错误:同时包括 includegraphics