开发者社区 > ModelScope模型即服务 > 正文

请教如何保存和读取模型?

1、我在魔塔的notebook中,使用pytorch创建的cnn模型,使用torch.save函数,保存到文件夹中后,下次启动就没了,应该保存在哪里?

2、torch.save函数如何把模型保存到我的模型库中?

3、torch.load函数如何从我的模型库中读取模型?

展开
收起
lb4yodpj23yzi 2023-12-12 13:35:21 107 0
4 条回答
写回答
取消 提交回答
  • 先保存在本地,然后上传到模型库中。

    def save(model):
        torch.save(model,'TEST_CAT_DOG/pytorch_model.pt')
        YOUR_ACCESS_TOKEN = '**************************'
        api = HubApi()
        api.login(YOUR_ACCESS_TOKEN)
        api.push_model(
            model_id="wsmqdbb/TEST_CAT_DOG", 
            model_dir="TEST_CAT_DOG" # 本地模型目录,要求目录中必须包含configuration.json
        )
    

    下次使用的时候克隆并加载

    def load():
        #模型下载
        !git clone https://www.modelscope.cn/*****/TEST_CAT_DOG.git
        return torch.load('TEST_CAT_DOG/pytorch_model.pt')
    
    2023-12-18 23:00:33
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。
    1. 保存模型时,可以将模型保存到本地文件系统或者云存储中。例如,将模型保存到当前工作目录下的model.pth文件中:
    torch.save(model.state_dict(), 'model.pth')
    
    1. 若要将模型保存到模型库中,可以先将模型保存到本地文件系统中,然后将该文件上传到模型库。具体操作取决于你使用的模型库。例如,如果你使用的是Hugging Face的模型库,可以使用transformers库中的from_pretrainedsave_pretrained方法:
    from transformers import AutoModel, AutoTokenizer
    
    # 加载预训练模型和分词器
    model = AutoModel.from_pretrained('bert-base-uncased')
    tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
    
    # 对模型进行微调(这里省略了微调过程)
    
    # 保存模型到本地文件系统
    torch.save(model.state_dict(), 'my_model.pth')
    
    # 将模型上传到模型库(这里以Hugging Face为例)
    model.save_pretrained('your_huggingface_username/my_model')
    
    1. 从模型库中读取模型时,首先需要安装相应的库,然后使用from_pretrained方法加载模型:
    from transformers import AutoModel, AutoTokenizer
    
    # 从模型库中加载预训练模型和分词器
    model = AutoModel.from_pretrained('your_huggingface_username/my_model')
    tokenizer = AutoTokenizer.from_pretrained('your_huggingface_username/my_model')
    
    2023-12-13 14:22:54
    赞同 展开评论 打赏
  • notebook示例关闭后只会保存ipynb文件image.png

    2023-12-12 16:14:40
    赞同 1 展开评论 打赏
  • 在使用 PyTorch 保存和加载模型时,需要考虑以下几点:

    1. 保存位置:

      • 在 Jupyter Notebook 中,你可以在本地文件系统中选择一个位置来保存你的模型。例如,你可以创建一个名为 models 的文件夹,在其中保存你的模型。
      • 要确保下次启动时该文件夹仍然存在,请将其保存到一个不会被清理的地方,如项目根目录或用户主目录。
    2. 保存模型:

      • 使用 torch.save() 函数将模型的权重和结构保存到文件中。有两种方法可以做到这一点:
        a) 只保存模型参数(推荐):
           torch.save(model.state_dict(), 'path_to_save/model.pth')
        
        b) 保存整个模型:
           torch.save(model, 'path_to_save/model.pth')
        
    3. 加载模型:

      • 根据你保存的方式,有两种方法可以加载模型:
        a) 如果你只保存了模型参数:
           model = TheModelClass(*args, kwargs)
           model.load_state_dict(torch.load('path_to_save/model.pth'))
           model.eval()
        
        b) 如果你保存了整个模型:
           model = torch.load('path_to_save/model.pth')
           model.eval()
        
    4. 模型库:

      • 要将模型添加到模型库,你需要有一个管理这些模型的地方。这可能是一个文件夹,或者是一个数据库,甚至是一个远程存储服务。
      • 在文件系统中,你可以创建一个名为 model_library 的文件夹,并将模型文件存放在其中。当你想从模型库中读取模型时,只需提供正确的文件路径即可。
    2023-12-12 14:15:01
    赞同 展开评论 打赏

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载