将gensim LDA模型保存到s3

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

我已经通过使用gensim获得了LDA模型。我可以将其保存在本地:

ldamodel.save('models/lda/lda.model')

这将在指定位置生成四个文件:

lda.model
lda.model.expElogbeta.npy
lda.model.id2word
lda.model.state

将它们装回就很简单

ldamodel =  models.LdaModel.load('models/lda/lda.model')

但是,我希望将此模型保存在s3上。我可以算出如何保存单个位,例如:

s3.meta.client.upload_file('models/lda/lda.model', 'bucket-name', 'lda.model')

但是我无法弄清楚如何真正有意义地读回它们,以便它们可以作为预期的一致模型发挥作用。因此,除了我之外,其他人可以从s3中获取文件并将其用作Python模型。

有人可以帮忙吗?

python amazon-s3 gensim
1个回答
0
投票
为什么您不实现一个考虑模型的单独文件的逻辑关系并将其视为一个的类?

例如

class LdaModel: def __init__(self, lda_local_path, s3bucket_name, s3bucket_obj_prefix): self.local_path = lda_local_path self.s3bucket = s3bucket_name self.s3bucket_obj_pre = s3bucket_obj_prefix def upload(self): for fl in os.listdir(self.local_path): fl_local = os.path.join(self.local_path, fl) s3.meta.client.upload_file(fl_local, self.s3bucket, self.s3bucket_obj_pre + '__' + fl_local) def download(self): ...

((我省略了download方法,以类似于upload的方式实现。]

[另一种方法是实现一个压缩包,该压缩包将压缩4个文件并将它们作为一个文件存储在S3中。

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