TensorFlow无法下载预训练模型时如何手动加载VGG19等权重文件
你遇到的报错是因为你下载的.h5文件是仅权重文件,没有包含模型结构信息,而load_model()方法仅支持加载同时保存了模型结构和权重的完整模型文件。
正确加载步骤
- 第一步:先初始化对应模型的空白结构,关闭自动加载预训练权重的配置
from tensorflow.keras.applications import VGG19 # 初始化VGG19结构,不加载权重 base_model = VGG19(input_shape = [256,256,3], include_top = False, weights = None)
- 第二步:调用模型的
load_weights()方法加载手动下载的权重文件
base_model.load_weights('vgg19_weights_tf_dim_ordering_tf_kernels_notop.h5')
其他模型通用方法
你提到的InceptionV3等其他Keras预训练模型都可以用同样逻辑处理:先初始化对应模型结构,设置weights=None,再调用load_weights()加载手动下载的权重文件即可。
可选优化
你可以把下载好的权重文件移动到Keras的默认模型缓存目录,后续直接调用原初始化代码就可以直接读取本地权重,无需重复下载或手动加载:
- Windows系统缓存路径:
C:\Users\你的用户名\.keras\models\ - macOS/Linux系统缓存路径:
~/.keras/models/
内容的提问来源于stack exchange,提问作者Anwesh
相关产品推荐
相关产品推荐

