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

TensorFlow2.0训练交通标志模型后pickle序列化出现无法序列化_thread._local报错

问题原因

TensorFlow/Keras的模型实例内部包含无法被pickle序列化的线程本地存储对象、计算图上下文等资源,原生不支持直接用pickle序列化整个模型对象,因此会抛出该TypeError异常。

解决方案

推荐使用Keras官方提供的模型序列化接口,替换原有pickle保存代码即可,你当前使用的TensorFlow 2.0.0 + Keras 2.3.1版本完全支持下述用法:

方案1:保存完整模型(包含结构、权重、编译配置)

该方案不需要后续重新定义模型结构,直接加载即可使用,是最常用的方案。

保存代码

替换原代码末尾的pickle保存部分:

# 保存完整模型
model.save("model_trained.h5")

加载代码

from tensorflow.keras.models import load_model
model = load_model("model_trained.h5")

方案2:仅保存模型权重

如果不需要保留编译配置,可选择只保存权重,文件体积更小,加载时需要先定义和训练时结构完全一致的模型。

保存代码

model.save_weights("model_trained_weights.h5")

加载代码

# 先初始化和训练时结构完全一致的模型
model = myModel()
# 加载权重
model.load_weights("model_trained_weights.h5")

注意事项

如果运行保存代码时提示缺少h5py依赖,执行pip install h5py==2.10.0安装适配版本即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 15:54:01