运行ANN可视化代码时出现AttributeError: module 'keras.layers' has no attribute 'core'求助
解决AttributeError: module 'keras.layers' has no attribute 'core'并实现ANN可视化
错误原因
你使用的ann_visualizer库基于旧版独立Keras开发,代码中仍在调用keras.layers.core模块,但当前你用的是TensorFlow集成的tf.keras,该模块结构已调整,因此触发属性错误。
解决方案
方案一:修改ann_visualizer源码适配tf.keras
- 找到
ann_visualizer的安装路径:在Python的site-packages文件夹中定位到ann_visualizer/visualize.py文件 - 打开文件,替换所有旧版Keras的引用:
- 将
from keras.layers.core import Dense, Dropout, Activation替换为from tf.keras.layers import Dense, Dropout, Activation - 将所有判断层类型的代码(如
isinstance(layer, keras.layers.core.Dense))替换为isinstance(layer, tf.keras.layers.Dense)
- 将
- 保存修改后,重新运行你的代码
方案二:使用适配新版tf.keras的可视化库(推荐)
方法1:用TensorFlow自带的plot_model(无需额外安装)
替换代码中ann_viz相关的部分为:
from tensorflow.keras.utils import plot_model # 生成可视化图片,保存为文件并显示结构细节 plot_model(ann, to_file='ann_visualization.png', show_shapes=True, show_layer_names=True, title="My first neural network")
执行后会在当前目录生成一张PNG图片,清晰展示网络的层级结构、每层输入输出形状及名称。
方法2:使用visualkeras库
- 先安装库:
pip install visualkeras
- 替换可视化代码部分:
import visualkeras # 直接显示可视化结果 visualkeras.layered_view(ann, legend=True, title="My first neural network").show() # 或者保存为图片文件 # visualkeras.layered_view(ann, legend=True, title="My first neural network").save('ann_visualization.png')
该库会生成更直观的分层视图,支持自定义样式。
额外提示
你的代码中使用了//作为注释符号,Python规范中应使用#,虽然不影响运行,但建议统一修改,避免混淆。
内容的提问来源于stack exchange,提问作者Shabana Ramzan
相关产品推荐
相关产品推荐

