pytorch之torch.utils.model_zoo.load_url()在给定URL上加载Torch序列化对象

2023-10-13 07:10

本文主要是介绍pytorch之torch.utils.model_zoo.load_url()在给定URL上加载Torch序列化对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

torch.utils.model_zoo.load_url(url, model_dir=None)
在给定URL上加载Torch序列化对象。
通俗点说,就是通过提供的.pth文件的url地址来下载指定的.pth文件【在pytorch中.pth文件就是模型的参数文件】

参数:

  • url (string) - 要下载对象的URL
  • model_dir (string, optional) - 保存对象的目录

如果对象已经存在于model_dir中,则将被反序列化并返回。【也就是后面所说的——已经下载好模型的情况】

参数详细说明:
(1)这里被model_zoo加载的权重遵循命名约定标准——url的文件名: 模型名-<SHA256取前n位>.pth,其中<SHA256取前n位>是文件内容的SHA256哈希的前八位或更多位数字。哈希用于确保唯一的名称并验证文件的内容。

The filename part of the URL should follow the naming convention filename-<sha256>.ext where <sha256> is the first eight or more digits of the SHA256 hash of the contents of the file.

例如:

http://data.lip6.fr/cadene/pretrainedmodels/dpn131-7af84be88.pth
http://data.lip6.fr/cadene/pretrainedmodels/resnext101_32x4d-29e315fa.pth
http://data.lip6.fr/cadene/pretrainedmodels/inceptionresnetv2-520b38e4.pth

如何查看SHA256?

  • Window:certutil -hashfile filename SHA256
  • Linux:sha256sum <filename>

在这里插入图片描述

补充——查看文件的三种哈希:

  • Window:
certutil -hashfile filename MD5
certutil -hashfile filename SHA1
certutil -hashfile filename SHA256
  • Linux:
md5sum <filename>
sha1sum <filename>
sha256sum <filename>

(2)model_dir的默认值为$TORCH_HOME/models,其中$TORCH_HOME默认为~/.torch。可以使用$TORCH_MODEL_ZOO环境变量来覆盖默认目录。

我下载的默认路径是:

~/.cache/torch/checkpoints

可以通过设置全局变量export TORCH_HOME=/xx/xxx即可修改下载的默认路径。修改后的路径为$TORCH_HOME/xx/xxx

例子:

weight_url='https://yjxiong.blob.core.windows.net/models/inceptionv3-cuhk-0e09b300b493bc74c.pth'
pretrained_dict = torch.utils.model_zoo.load_url(weight_url)

参考:官方文档


如果对象已经存在于model_dir中,则将被反序列化并返回。
【已经下载好模型的情况】

如果你已经下载好模型了,那么可以通过torch.load(‘the/path/of/.pth’)导入
因为torch.utils.model_zoo.load_url()方法最后返回的时候也是用torch.load接口封装成字典输出

例如我的代码(部分):

weight_url='https://yjxiong.blob.core.windows.net/models/inceptionv3-cuhk-0e09b300b493bc74c.pth'
pretrained_dict = torch.utils.model_zoo.load_url(weight_url)
self.load_state_dict(pretrained_dict)

因此不想下载的话可以用如下代码:

checkpoint=torch.load('~/.cache/torch/checkpoints/inceptionv3-cuhk-0e09b300b493bc74c.pth') 
self.load_state_dict(checkpoint)

这篇关于pytorch之torch.utils.model_zoo.load_url()在给定URL上加载Torch序列化对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201575

相关文章

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

Python中判断对象是否为空的方法

《Python中判断对象是否为空的方法》在Python开发中,判断对象是否为“空”是高频操作,但看似简单的需求却暗藏玄机,从None到空容器,从零值到自定义对象的“假值”状态,不同场景下的“空”需要精... 目录一、python中的“空”值体系二、精准判定方法对比三、常见误区解析四、进阶处理技巧五、性能优化

如何在pycharm安装torch包

《如何在pycharm安装torch包》:本文主要介绍如何在pycharm安装torch包方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录在pycharm安装torch包适http://www.chinasem.cn配于我电脑的指令为适用的torch包为总结在p

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

如何配置Spring Boot中的Jackson序列化

《如何配置SpringBoot中的Jackson序列化》在开发基于SpringBoot的应用程序时,Jackson是默认的JSON序列化和反序列化工具,本文将详细介绍如何在SpringBoot中配置... 目录配置Spring Boot中的Jackson序列化1. 为什么需要自定义Jackson配置?2.

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

pytorch之torch.flatten()和torch.nn.Flatten()的用法

《pytorch之torch.flatten()和torch.nn.Flatten()的用法》:本文主要介绍pytorch之torch.flatten()和torch.nn.Flatten()的用... 目录torch.flatten()和torch.nn.Flatten()的用法下面举例说明总结torch

Pydantic中model_validator的实现

《Pydantic中model_validator的实现》本文主要介绍了Pydantic中model_validator的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录引言基础知识创建 Pydantic 模型使用 model_validator 装饰器高级用法mo

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio