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

降级Keras至2.1.6仍无法导入keras.engine.topology下Network类求助

解决Keras导入Network类报错问题

问题根因

降级到Keras 2.1.6后仍然导入失败的核心原因是:Network类在Keras 2.x早期版本中本身就不属于keras.engine.topology的公开导出成员,该类默认存放在独立的network模块下,部分场景下独立安装的Keras和TensorFlow内置的Keras存在路径冲突也会触发该报错。

可行解决方法

方法1:调整导入路径(优先尝试)

Keras 2.1.6版本的Network类可通过以下路径直接导入,替换原导入语句即可:

from keras.engine.network import Network

如果仍报错,大概率是存在TensorFlow内置Keras的路径冲突,改用以下导入语句:

from tensorflow.python.keras.engine.network import Network

方法2:手动复用类定义(极端适配场景)

如果你的CycleGAN代码是基于极旧的定制版Keras编写的,可直接从本地报错提示的/usr/local/lib/python3.7/dist-packages/keras/engine/topology.py文件中找到Network类的定义,复制到你项目的自定义工具模块中导入使用即可。

方法3:高版本Keras适配方案

如果不想强制降级Keras,2.4+版本的Keras、tf.keras中的Model类完全可以覆盖旧版Network类的所有功能,把代码中所有用到Network的位置替换为Model即可,导入语句为:

from tensorflow.keras import Model

校验注意事项

  • 调整导入语句后先单独执行导入测试,无报错再运行CycleGAN完整代码
  • 如果存在环境依赖冲突,建议新建虚拟环境,安装Keras 2.1.6时同步匹配对应版本的TensorFlow(Keras 2.1.6适配TensorFlow 1.5~1.10版本,版本不匹配也会触发导入异常)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:15:03