无法打开 FastText 以从存储桶中加载

问题描述

我下载了fasttext模型lid.176.bin。如果我使用文件夹中的模型在本地运行我的代码,一切正常。但是我需要在 GC 中运行它,因此,我将模型上传到存储桶并将模型的路径从本地更改为 gs 存储桶并出现错误ValueError: gs://models/fasttext-model/lid.176.bin cannot be opened for loading! 如何使用存储桶中的模型?

path_to_pretrained_model = 'gs://models/fasttext-model/lid.176.bin'
fasttext_model = fasttext.load_model(path_to_pretrained_model)

解决方法

Google Documentation 的这个函数帮我解决问题

from google.cloud import storage


def download_blob(bucket_name,source_blob_name,destination_file_name):
    """Downloads a blob from the bucket."""
    # bucket_name = "your-bucket-name"
    # source_blob_name = "storage-object-name"
    # destination_file_name = "local/path/to/file"

    storage_client = storage.Client()

    bucket = storage_client.bucket(bucket_name)

    # Construct a client side representation of a blob.
    # Note `Bucket.blob` differs from `Bucket.get_blob` as it doesn't retrieve
    # any content from Google Cloud Storage. As we don't need additional data,# using `Bucket.blob` is preferred here.
    blob = bucket.blob(source_blob_name)
    blob.download_to_filename(destination_file_name)

    print(
        "Blob {} downloaded to {}.".format(
            source_blob_name,destination_file_name
        )
    )

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...