【问题标题】:BioSentVec Embedding not loading on Linux serverBioSentVec 嵌入未在 Linux 服务器上加载
【发布时间】:2021-09-07 08:51:01
【问题描述】:

trial.py 中的 Python 代码:

import sent2vec

model_path = 'BioSentVec/BioSentVec_PubMed_MIMICIII-bigram_d700.bin'

model = sent2vec.Sent2vecModel()

try:

    model.load_model(model_path)
except Exception as e:
    print(e)

在命令行运行:

$ python3 trial.py

输出:

terminate called after throwing an instance of 'std::bad_alloc'   
what():  std::bad_alloc 
Aborted (core dumped)

BioSentVec 嵌入是 22GB,我有 46GB 可用。基于 fasttext 的模型。运行 Ubuntu 20.04 LTS。使用 conda 环境 - 安装一些旧版本的依赖项时遇到问题。 任何有关使嵌入将句子转换为向量的帮助将不胜感激, 谢谢大家。

【问题讨论】:

    标签: python ubuntu-20.04 word-embedding fasttext bad-alloc


    【解决方案1】:

    这看起来可能是由于可寻址内存不足引起的错误。

    请注意,22GB 的磁盘文件可能需要比 22GB 更多的可用内存来加载 - 因此尝试使用更大 RAM 的机器可能会解决此问题。

    您还应该仔细检查您在本地拥有的模型文件是否被截断或以任何方式损坏。有时这些问题会在以后显示为神秘的加载错误。

    (看来providing that file这个项目没有提供准确的预期大小,所以我用命令curl -I "https://ftp.ncbi.nlm.nih.gov/pub/lu/Suppl/BioSentVec/BioSentVec_PubMed_MIMICIII-bigram_d700.bin"查询了web服务器,结果报告:

    HTTP/1.1 200 OK
    Date: Sat, 26 Jun 2021 18:02:19 GMT
    Server: Apache
    Last-Modified: Sun, 21 Oct 2018 15:34:20 GMT
    ETag: "53ba885aa-578beded2028f"
    Accept-Ranges: bytes
    Content-Length: 22475736490
    Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
    Access-Control-Allow-Origin: *
    Access-Control-Allow-Methods: GET,POST,PUT,OPTIONS
    Access-Control-Allow-Headers: RANGE, Cache-control, If-None-Match, Content-Type
    Access-Control-Expose-Headers: Content-Length, Content-Range, Content-Type
    Content-Type: application/octet-stream
    

    因此,鉴于 Content-Length 标头,您应该仔细检查您的本地副本是否正好是 22,475,736,490 字节长。

    另一种选择可能是尝试再次将其下载到不同的位置——不同的路径,或另一台具有无可挑剔的互联网连接的机器——只是检查两个下载的大小和校验和是否相同。)

    【讨论】:

    • 谢谢,我如何检查它是否被截断或检查我需要多少负载内存?再次感谢?
    • 有时大文件的提供者会声明他们的 exat 预期大小,或完整文件的校验和/哈希,因此用户可以检查他们的本地副本以进行任何更改比较。我在似乎源自您的文件 (github.com/ncbi-nlp/BioSentVec) 的项目中没有看到这样的数字,因此我将添加另一种方法来了解答案的预期大小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 2021-04-28
    • 2016-07-16
    • 1970-01-01
    相关资源
    最近更新 更多