1、我在魔塔的notebook中,使用pytorch创建的cnn模型,使用torch.save函数,保存到文件夹中后,下次启动就没了,应该保存在哪里?
2、torch.save函数如何把模型保存到我的模型库中?
3、torch.load函数如何从我的模型库中读取模型?
先保存在本地,然后上传到模型库中。
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')
model.pth
文件中:torch.save(model.state_dict(), 'model.pth')
transformers
库中的from_pretrained
和save_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')
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')
在使用 PyTorch 保存和加载模型时,需要考虑以下几点:
保存位置:
models
的文件夹,在其中保存你的模型。保存模型:
torch.save()
函数将模型的权重和结构保存到文件中。有两种方法可以做到这一点: torch.save(model.state_dict(), 'path_to_save/model.pth')
b) 保存整个模型: torch.save(model, 'path_to_save/model.pth')
加载模型:
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()
模型库:
model_library
的文件夹,并将模型文件存放在其中。当你想从模型库中读取模型时,只需提供正确的文件路径即可。ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352