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

使用ANN Visualizer可视化LSTM架构时遇ValueError报错求助

问题

尝试使用ann_visualizer工具包可视化LSTM架构时触发ValueError,代码及报错信息如下:

代码

# Visualize the architecture

from ann_visualizer.visualize import ann_viz

ann_viz(lstm_model, view=True, title='LSTM Architecture')

报错输出

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-30-8cea540842d4> in <module>
      3 from ann_visualizer.visualize import ann_viz
      4 
----> 5 ann_viz(lstm_model, view=True, title='LSTM Architecture')

/usr/local/lib/python3.8/dist-packages/ann_visualizer/visualize.py in ann_viz(model, view, filename, title)
     40     for layer in model.layers:
     41         if(layer == model.layers[0]):
---&gt; 42             input_layer = int(str(layer.input_shape).split(",")[1][1:-1]);
     43             hidden_layers_nr += 1;
     44             if (type(layer) == keras.layers.core.Dense):

ValueError: invalid literal for int() with base 10: ''
解决方案

这个错误的根源是ann_visualizer库的默认代码仅适配**全连接层(Dense)**这类二维输入的网络结构,而LSTM的输入形状是三维(格式为(样本数, 时间步长, 特征数))。库中通过固定字符串拆分逻辑解析输入形状的代码无法处理三维输入,导致转换整数时失败。

可以通过以下两种方式解决:

  • 替换为适配循环网络的可视化工具:使用Keras内置的plot_model,它原生支持LSTM等循环层的可视化,示例代码:
    from tensorflow.keras.utils import plot_model
    
    # 生成可视化图,显示层形状和名称
    plot_model(lstm_model, show_shapes=True, show_layer_names=True, to_file='lstm_architecture.png', dpi=96)
    
  • 修改ann_visualizer源码适配三维输入:
    1. 找到Python环境中ann_visualizer/visualize.py文件(路径如报错信息中的/usr/local/lib/python3.8/dist-packages/ann_visualizer/visualize.py)
    2. 定位到第42行,将原代码:
      input_layer = int(str(layer.input_shape).split(",")[1][1:-1]);
      
      替换为适配二维和三维输入的逻辑:
      # 兼容2D(Dense)和3D(LSTM)输入形状
      shape_info = layer.input_shape
      if len(shape_info) == 3:
          # LSTM等三维输入,提取特征数
          input_layer = shape_info[2]
      else:
          # Dense等二维输入,提取特征数
          input_layer = shape_info[1]
      
    3. 保存修改后的文件,重新运行原可视化代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 07:45:36