当前位置: 首页 > news >正文

pytorch中的torch.hub.load():以vggish为例

  pytorch提供了torch.hub.load()函数加载模型,该方法可以从网上直接下载模型或是从本地加载模型。官方文档

torch.hub.load(repo_or_dir, model, *args, source='github', trust_repo=None, force_reload=False, verbose=True, skip_validation=False, **kwargs)

参数说明:
repo_or_dir( string ) 如果是 ‘github’, 这应该对应于格式为可选的ref(标记或分支),例如 ‘pytorch/vision:0.10’。 如果是“local”,则它应该是本地目录的路径。sourcerepo_owner/repo_name[:ref]refmainmastersource
model ( string ) 在dir的hubconf.py。
*args(可选)callable 的相应参数。
source ( string , optional ) ‘github’ 或 ‘local’。指定如何解释repo_or_dir。
force_reload ( bool , optional ) 是否无条件强制重新下载github repo。默认为False,即下一次直接从本地读取。
verbose ( bool , optional ) 如果False,静音有关命中本地缓存的消息。请注意,有关首次下载的消息无法静音。如果source = 'local’没有任何影响。默认为True。
skip_validation ( bool , optional ) 如果False,torchhub 将检查github参数指定的分支或提交是否正确属于 repo 所有者。这将向 GitHub API 发出请求;您可以通过设置GITHUB_TOKEN环境变量来指定非默认 GitHub 令牌 。默认为False。
**kwargs(可选) 可调用的对应kwargs。

加载vggish预训练模型

  vggish模型用于音频分类模型的特征嵌入,预训练的pytorch版本:harritaylor/torchvggish,该版本的权重直接从tensorflow模型移植,因此使用“torchvggish”创建的嵌入将是相同的。
  官方的加载模型示例代码:

import torchmodel = torch.hub.load('harritaylor/torchvggish', 'vggish')
model.eval()# Download an example audio file
import urllib
url, filename = ("http://soundbible.com/grab.php?id=1698&type=wav", "bus_chatter.wav")
try: urllib.URLopener().retrieve(url, filename)
except: urllib.request.urlretrieve(url, filename)model.forward(filename)

  运行这个代码块会自动从github上加载预训练的torchvggish模型和与训练权重,如果在hub里提示缺少什么包直接装就可以。
  这里要提一个问题:如果在下载模型的中途中断下载,那么下次运行这个代码的时候可能会报错:

RuntimeError: unexpected EOF, expected 198783261 more bytes. The file might be corrupted.

  这个问题是说从本地加载的文件是残缺的,不完整。因为该方法会首先从本地load文件,而你之前下载的文件没下完,设置force_reload为True也没啥用,需要找到你本地下载下来的预训练模型pth文件并且删掉,就可以重新下载了。

http://www.lryc.cn/news/329140.html

相关文章:

  • mysql 用户管理-权限管理
  • RabbitMQ--04--发布订阅模式 (fanout)-案例
  • 基于java+SpringBoot+Vue的网上书城管理系统设计与实现
  • PCL点云处理之M估计样本一致性(MSAC)平面拟合(二百三十六)
  • 通过WSL在阿里云上部署Vue项目
  • 240330-大模型资源-使用教程-部署方式-部分笔记
  • uni-app 富文本编辑器
  • 3D汽车模型线上三维互动展示提供视觉盛宴
  • 如何在Flutter中进行网络请求?
  • node:ReferenceError: XMLHttpRequest is not defined
  • PHP定时任务框架taskPHP3.0的学习记录1(TaskPHP、执行任务类的实操代码实例)
  • 图腾柱PFC:HP1010为您的电动两轮车之旅提供绿色,高效,安全的动力
  • 动态规划-----背包类问题(0-1背包与完全背包)详解
  • 通过 Docker 搭建 BookStack
  • 通俗易懂:什么是Java虚拟机(JVM)?它的主要作用是什么?
  • [k8s] kubectl执行失败后等待一段时间再重试 (Shell实现)
  • java中的static和单例模式
  • RabbitMQ相关总结
  • RAFT: Adapting Language Model to Domain Specific RAG
  • 第十五届蓝桥杯第三期模拟赛第十题 ← 上楼梯
  • 第四题:星期一
  • Mamba: Linear-Time Sequence Modeling with Selective State Spaces(论文笔记)
  • 2024蓝桥杯每日一题(区间DP)
  • LeetCode-2952. 需要添加的硬币的最小数量【贪心 数组 排序】
  • 新书速递——《可解释AI实战(PyTorch版)》
  • 国产数据库中统计信息自动更新机制
  • 【C++】入门C++(中)
  • javaIO
  • 睿尔曼超轻量仿人机械臂之复合机器人底盘介绍及接口调用
  • 用JSch实现远程传输文件并打包成jar