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

加载Keras JSON模型时遇TypeError:无法定位Sequential类

问题原因与解决方案

核心问题

你混用了原生keras和tensorflow.keras的导入模块,导致模型加载时无法识别Sequential类:

  • 加载模型用的是from keras.models import model_from_json(原生keras)
  • 但定义模型时用的是from tensorflow.keras.models import Sequential(TensorFlow集成的Keras)

两者属于不同命名空间,序列化的模型配置里的Sequential无法被原生keras的model_from_json识别。

解决步骤

1. 统一导入模块

删除原生keras的导入,全部改用tensorflow.keras的导入:

import numpy as np
from tensorflow.keras.preprocessing import image
from tensorflow.keras.models import model_from_json, Sequential, Model

from tensorflow.keras import layers
from tensorflow.keras.preprocessing.image import ImageDataGenerator, load_img, img_to_array
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, GlobalAveragePooling2D, Dropout, Flatten
from tensorflow.keras.applications import VGG16

2. 重新加载模型

保持加载代码不变,现在model_from_json会从tensorflow.keras的命名空间中找到Sequential类:

json_file = open('./model/model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
loaded_model.load_weights("model.h5")

额外建议

后续保存模型时,推荐使用TensorFlow Keras的完整保存方式,更简洁且能避免这类命名空间问题:

# 保存完整模型
model.save('./model/my_full_model.h5')

# 加载完整模型
from tensorflow.keras.models import load_model
loaded_model = load_model('./model/my_full_model.h5')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 20:42:15