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

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

cpp 复制代码
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"创建的嵌入将是相同的。

官方的加载模型示例代码:

cpp 复制代码
import torch

model = 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里提示缺少什么包直接装就可以。

这里要提一个问题:如果在下载模型的中途中断下载,那么下次运行这个代码的时候可能会报错:

cpp 复制代码
RuntimeError: unexpected EOF, expected 198783261 more bytes. The file might be corrupted.

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

相关推荐
爱写代码的小朋友8 分钟前
人工智能驱动下个性化学习路径的构建与实践研究——以K12数学学科为例
人工智能·学习
宝贝儿好2 小时前
【强化学习实战】第十一章:Gymnasium库的介绍和使用(1)、出租车游戏代码详解(Sarsa & Q learning)
人工智能·python·深度学习·算法·游戏·机器学习
绝世这天下4 小时前
【在 DGX Spark 上运行 vLLM-Omni 用于 Qwen3-TTS(语音设计,语音克隆)】
人工智能
陈大鱼头5 小时前
[译]费尽心思来保障 OpenClaw ?那跟直接用 GPT 有什么区别?
人工智能
Fleshy数模5 小时前
玩转OpenCV:视频椒盐噪声处理与图像形态学操作实战
人工智能·opencv·音视频
程序媛一枚~5 小时前
✨✨✨使用Python,OpenCV及图片拼接生成❤️LOVE❤️字样图,每张小图加随机颜色边框,大图加随机大小随机颜色边框
图像处理·python·opencv·numpy·图像拼接
幂律智能5 小时前
Agent × 流程引擎融合架构:从静态流程到智能流程编排
人工智能·架构·agent
无垠的广袤5 小时前
ChatECNU 大语言模型与 PicoClaw 部署
人工智能·语言模型·自然语言处理·嵌入式·树莓派
MediaTea6 小时前
Python:collections.Counter 常用函数及应用
开发语言·python
爱淋雨的男人6 小时前
自动驾驶感知相关算法
人工智能·算法·自动驾驶