【问题标题】:Access Spacy's trained model/folder in google cloud storage在谷歌云存储中访问 Spacy 的训练模型/文件夹
【发布时间】:2023-03-15 05:42:01
【问题描述】:

我正在部署一个 python 应用程序,它使用 Spacy 在 GAE 上的自定义训练模型。我还在 Google Cloud Storage 中上传了模型文件夹,但在从存储桶中仅获取文件夹并使用它加载 spacy 时遇到了问题。

现在,如果我要获取 blob,我只能获取一个文件,而不是文件夹。

请帮帮我。

仅供参考,Spacy 的自定义训练和保存模型是一个包含多个文件的文件夹。 谢谢

编辑 1:

这是保存模型的目录结构

【问题讨论】:

    标签: python-3.x google-cloud-storage spacy


    【解决方案1】:

    Google Cloud Storage在现实中是没有文件夹的,你看到的文件夹只是一种表示,你可以看更详细的解释here

    您需要做的是递归地获取“文件夹”内的所有文件。即:

    import sys
    from google.cloud import storage
    from google.cloud.storage.blob import Blob
    
    
    client = storage.Client()
    for blob in client.list_blobs('mybucket', prefix='sofolder'):
        blobname = blob.name
        blobstring = str(blobname)
        blobcleaname = blobstring.rsplit('/', 1)[-1]
        if not blobstring.endswith('/'):
            blob.download_to_filename('./' + str(blobcleaname))
            print(blobstring)
    

    更新 1:

    所以我通过打印来控制我的存储桶的名称,快速复制了您的用例。我有一个和你类似的结构:

    bucketname
        -filexxx 
        -folderyyy
        -sofolder <--- the folder i'm interested in
          -file1.png
          -folder_a
            -fileinfolder_a.png
          -folder_b
            -fileinfolder_b.png
          -folder_c
            -fileinfolder_c.png
    

    然后运行这个:

    import sys
    from google.cloud import storage
    from google.cloud.storage.blob import Blob
    
    client = storage.Client()
    for blob in client.list_blobs('bucketname', prefix='sofolder'):
        blobname = blob.name
        blobstring = str(blobname)
        if not blobstring.endswith('/'):
            print(blobstring)
    

    我得到这个输出:

    sofolder/
    sofolder/file1.png
    sofolder/folder_a/fileinfolder_a.png
    sofolder/folder_b/fileinfolder_b.png
    sofolder/folder_c/fileinfolder_c.png
    

    【讨论】:

    • 谢谢@Chris32 但这会弄乱代码,因为有 4 个子目录和 16 个文件。我已经更新了目录结构的问题。请看一下
    • /model_output 中只有这些文件吗?或者您不想检索该文件夹中的更多文件?
    • 只有这些
    • 我更新了我的答案。在第一部分中,我使用功能示例更新了我的代码以递归地下载文件,在第二部分中,我描述了如何仅列出所需文件夹中的文件。希望对您有所帮助!
    • 我不会忘记的。别担心。我还没有回到这个问题,因为我被困在其他人身上。不过感谢您的回答。 @Chris32
    猜你喜欢
    • 2021-03-12
    • 2020-05-12
    • 2014-07-20
    • 2019-08-24
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 2020-02-17
    相关资源
    最近更新 更多