【权重】离线环境怎么用预训练权重

在真实的生产环境中,模型加载往往不会像教程里那么"顺滑"。

  • 服务器无法访问外网(安全隔离环境)
  • 内网集群(HPC / 企业训练平台)
  • Docker 镜像需要预置模型
  • 推理服务必须离线启动

你会发现,torchvision 的"自动下载预训练权重"机制完全失效。这时候,就需要我们手动接管整个流程。

一、Step1: 在有网的机器上下好权重

python 复制代码
from torchvision import models
_ = models.vgg16(weights='IMAGENET1K_V1')   # 触发一次自动下载

​ 检查本地 cache 是否存在权重,如果没有 → 自动从官方 URL 下载,然后缓存到 ~/.cache/torch/hub/checkpoints/

​ 但在离线环境,因为无法访问下载地址,自动流程直接失败,模型初始化被阻断。

二、Step2:定位权重文件

​ 下载完成后,权重会被存到 torch cache 中。

python 复制代码
import torch, os
from torchvision import models

weights = models.VGG16_Weights.IMAGENET1K_V1
filename = weights.url.split('/')[-1]        # vgg16-397923af.pth
src = os.path.join(torch.hub.get_dir(), 'checkpoints', filename)

三、Step3复制到目标机器

​ scp / 放进镜像 / 拷到内网,然后在无网机器上加载:

python 复制代码
state_dict = torch.load('/path/to/vgg16-397923af.pth', map_location='cpu')
model = models.vgg16(weights=None)          # 注意是 None,别触发下载
model.load_state_dict(state_dict)

关键点weights=None 告诉 torchvision "只给我结构、别下载"。然后你手动 load_state_dict

​ 这一套流程在 HuggingFace 的 transformers 里完全同构,学会一次到处能用。

相关推荐
小刘快学习6 分钟前
把 AI 账单拆到部门:企业 AI 网关的精准分账思路
人工智能
米小虾13 分钟前
你让监控模型读的思维链,可能是攻击者写好的剧本
人工智能
deepseek2325 分钟前
Iris 开源搜索智能体拆解:35B 与 397B 中文仅差 0.3 分,上下文管理胜过堆参数
人工智能·ai agent·开源模型
ai小陈27 分钟前
CUDA Stream实战:让数据传输与GPU计算真正重叠
人工智能·深度学习·ai·pdf·云计算·gpu算力
residual_fan32 分钟前
【学术论文】航空发动机故障诊断智能体:基于持续对比强化学习的动态优化方法
人工智能·算法·数据挖掘·数据分析
东风破_35 分钟前
从 RAG 到 Agentic RAG:第二步,把复杂问题拆开再检索
人工智能
dehuisun1 小时前
第07篇:RAG+Agent 部署架构、资源评估与私有化方案
人工智能
米小虾1 小时前
拆给 8 个子智能体,只拿回 2.3 倍信息:多智能体分解的产出守恒律
人工智能·agent
虹科网络安全1 小时前
Redis 安全公告:CVE-2026-81934 TLS 处理漏洞及修复建议
网络·人工智能·网络安全
IT·陈寒1 小时前
Redis 连接池泄漏害我加班到凌晨三点
人工智能·大模型·api·创业·变现·简历优化