Gensim 无法加载 word2vec 模型
Gensim unable to load word2vec models
我在本地机器上使用 gensim 训练了一个 word2vec 模型,并将所有文件上传到 AWS。我可以在我的本地机器上加载模型,但在 AWS 上加载会得到
FileNotFoundError: [Errno 2] No such file or directory:
's3://saltsagemaker/models/bilstm_models/word2vec/word2vec_model.wv.vectors.npy'
这个有效
# LOCAL MACHINE
from gensim.models import Phrases, Word2Vec
WV_MODEL = 'model_train_script/models/bilstm_models/word2vec/word2vec_model'
wv_model = Word2Vec.load(WV_MODEL)
这不起作用
# AWS CODE
from gensim.models import Phrases, Word2Vec
WV_MODEL = 's3://saltsagemaker/models/bilstm_models/word2vec/word2vec_model'
wv_model = Word2Vec.load(WV_MODEL)
以上代码给出以下内容
FileNotFoundError: [Errno 2] No such file or directory:
's3://saltsagemaker/models/bilstm_models/word2vec/word2vec_model.wv.vectors.npy'
上传到本地机器的文件
上传到 AWS 的文件
Gensim 依赖于加载附属文件的 numpy
代码(如您的 word2vec_model.wv.vectors.npy
)不支持 's3://saltsagemaker/models/bilstm_models/word2vec/word2vec_model.wv.vectors.npy'
等远程 S3 路径。因此,它将其解释为就好像它是本地路径一样 – 并且什么也找不到。
你可以:
- 在使用前手动下载文件到本地临时文件 space;或
- 完全避免使用 Gensim 对象的自定义
.save()
和 .load()
方法,而是使用 Python 的 pickle
功能将模型对象写入单个文件,然后在该单个文件上使用 unpickle
从单个 S3 路径 读回
我在本地机器上使用 gensim 训练了一个 word2vec 模型,并将所有文件上传到 AWS。我可以在我的本地机器上加载模型,但在 AWS 上加载会得到
FileNotFoundError: [Errno 2] No such file or directory: 's3://saltsagemaker/models/bilstm_models/word2vec/word2vec_model.wv.vectors.npy'
这个有效
# LOCAL MACHINE
from gensim.models import Phrases, Word2Vec
WV_MODEL = 'model_train_script/models/bilstm_models/word2vec/word2vec_model'
wv_model = Word2Vec.load(WV_MODEL)
这不起作用
# AWS CODE
from gensim.models import Phrases, Word2Vec
WV_MODEL = 's3://saltsagemaker/models/bilstm_models/word2vec/word2vec_model'
wv_model = Word2Vec.load(WV_MODEL)
以上代码给出以下内容
FileNotFoundError: [Errno 2] No such file or directory: 's3://saltsagemaker/models/bilstm_models/word2vec/word2vec_model.wv.vectors.npy'
上传到本地机器的文件
上传到 AWS 的文件
Gensim 依赖于加载附属文件的 numpy
代码(如您的 word2vec_model.wv.vectors.npy
)不支持 's3://saltsagemaker/models/bilstm_models/word2vec/word2vec_model.wv.vectors.npy'
等远程 S3 路径。因此,它将其解释为就好像它是本地路径一样 – 并且什么也找不到。
你可以:
- 在使用前手动下载文件到本地临时文件 space;或
- 完全避免使用 Gensim 对象的自定义
.save()
和.load()
方法,而是使用 Python 的pickle
功能将模型对象写入单个文件,然后在该单个文件上使用unpickle
从单个 S3 路径 读回