You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无互联网环境下ResNet50加载本地预训练权重方法咨询

离线环境加载ResNet50预训练权重实现方法

weights="imagenet"参数会触发Keras的在线权重下载逻辑,无网环境下会直接抛出网络不可达错误,通过本地加载权重的方式可以完全绕开在线拉取流程,具体操作如下:

  • 提前在有网络的环境准备对应权重文件:当前代码使用include_top=False配置,对应无顶层全连接层的ImageNet权重,文件名为resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5;如果之前在有网环境运行过相同代码,权重会默认缓存在用户目录下的.keras/models/路径中,直接复制即可,无需重复下载。
  • 将权重文件拷贝到离线环境的本地磁盘,记录好文件的绝对路径。
  • 修改模型加载代码,跳过在线拉取逻辑直接读取本地文件,两种写法均可正常运行:

写法1:直接给weights参数传入本地路径

# 替换为你本地权重文件的实际存储路径
local_weights = "/data/pretrained/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5"
base_cnn = resnet.ResNet50(
    weights=local_weights,
    input_shape=target_shape + (3,),
    include_top=False
)

写法2:初始化模型后手动加载权重

如果需要在加载权重前后做自定义处理,可以先初始化无权重的模型结构,再调用权重加载接口:

# 先初始化随机权重的模型结构
base_cnn = resnet.ResNet50(
    weights=None,
    input_shape=target_shape + (3,),
    include_top=False
)
# 从本地读取权重加载到模型中
base_cnn.load_weights("/data/pretrained/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5")

注意事项

  • 权重文件必须和当前环境的TensorFlow/Keras版本匹配,否则会出现层名不匹配、权重维度不对应的报错
  • Windows环境写路径时建议使用原始字符串格式,避免转义符导致路径识别错误,示例:r"D:\pretrained\resnet50_notop.h5"
  • 只要传入的本地路径有效,代码不会触发任何网络请求,完全适配纯离线环境。

内容的提问来源于stack exchange,提问作者Exploring

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 11:24:22