首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FastText: AttributeError:输入对象'FastText‘没有属性'reduce_model’

FastText: AttributeError:输入对象'FastText‘没有属性'reduce_model’
EN

Stack Overflow用户
提问于 2021-10-20 03:36:19
回答 1查看 312关注 0票数 0

我使用FastText生成单词嵌入。我从https://fasttext.cc/docs/en/crawl-vectors.html下载了预先训练过的模型,模型有300个维,但是我想要100个维,所以我使用了减少模型命令,但是我得到了一个错误。

import gensim

model = gensim.models.fasttext.FastText.load_fasttext_format('cc.th.300.bin')

gensim.models.fasttext.utils.reduce_model(model, 100)

我得到了AttributeError: module 'gensim.utils' has no attribute 'reduce_model'

以下是FastText文档的代码

import fasttext

import fasttext.util

ft = fasttext.load_model('cc.en.300.bin')

fasttext.util.reduce_model(ft, 100)

如何修复此错误,我无法为新命令找到任何文档。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-20 05:57:00

正如错误消息所描述的,模块gensim.fasttext.utils没有函数reduce_model()

这不是一个普通的/标准的操作--这只是Facebook包装器决定实现的东西。(看起来它使用了标准主成分分析( PCA )对向量的一个极小的子样本,每一个这里的源代码)。

你为什么要降低维数?

请注意,您将失去模型的一些表现力,如果您能够加载模型来进行缩减,那么对于您的RAM来说就不会太大。如果您的主要目标是保存模型大小,那么可能有更好的方法,例如根据您的原因放弃更少的单词。

如果您绝对需要执行这样的缩减,一些选项可以是:

  • 使用Facebook包装器进行操作,然后将结果保存在Gensim可以加载的表单中。
  • 对Gensim模型重新实现相同的操作,也许使用FB代码作为指导。(你必须确保Gensim模型在所有方面都得到了更新,它考虑到了最初的维度,这可能很棘手-它从来不是Gensim的目标或功能来启用事后模型收缩。)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69640025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档