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

使用Conda运行Keras代码遇AttributeError: register_tf_serializable不存在问题求助

解决AttributeError: module 'tensorflow.python.saved_model.registration' has no attribute 'register_tf_serializable'

核心问题分析

这个报错通常源于TensorFlow内部模块冲突、环境依赖混乱,或是导入方式混用导致的加载异常,结合你的TF/Keras 2.11.0版本和代码,主要排查方向集中在导入规范和环境完整性上。

解决方案

1. 统一Keras导入规范,避免混用路径

你的代码同时导入了tensorflow.keras和tensorflow.python.keras的模块,这会触发内部加载冲突。修改所有导入语句为统一的tensorflow.keras路径,并且TF 2.x中CuDNNLSTM已整合进LSTM(GPU可用时自动启用加速),无需单独导入:

from tensorflow.keras.models import Sequential, Model
from tensorflow.keras.layers import Dense, Flatten, Embedding, Input, LSTM
from tensorflow.keras.preprocessing.text import text_to_word_sequence

2. 清理环境中的冲突依赖

  • 卸载单独安装的Keras包(TF 2.x已内置Keras,单独安装的包会引发版本冲突):
    pip uninstall -y keras
    # 若用conda安装过,执行:
    conda remove keras
    
  • 检查并修复TF模块完整性:运行以下代码验证TF核心模块是否正常:
    import tensorflow as tf
    print(tf.__version__)
    print(tf.keras.__version__)
    # 验证报错涉及的模块是否存在
    print(hasattr(tf.saved_model.registration, 'register_tf_serializable'))
    
    若输出True,说明TF模块完整;若仍报错,需重新安装TF。

3. 重建纯净Conda环境(终极解决办法)

如果上述步骤无效,大概率是当前环境依赖混乱,创建全新环境只安装所需版本的TF:

# 创建新环境(指定Python3.9,适配TF2.11的版本要求)
conda create -n tf_clean_env python=3.9
conda activate tf_clean_env
# 安装TF2.11.0,无需单独安装Keras
conda install tensorflow=2.11.0

之后在新环境中运行修改后的代码,即可解决冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:07:43