You need to enable JavaScript to run this app. Google Colab下Keras函数式API创建模型调用summary无层显示问题
优惠活动
大模型
产品
解决方案
定价
更多

Google Colab下Keras函数式API创建模型调用summary无层显示问题

问题原因

该问题基本都是由Google Colab环境中的Keras/TensorFlow导入冲突、版本不匹配导致的:

  • Colab默认同时预装了独立Keras包和TensorFlow内置的tf.keras模块,如果你构建模型时混用了两个来源的API(比如Input、Dense从独立keras.layers导入,Model从tf.keras.models导入),就会出现层信息无法被Model正确追踪的问题。但底层计算图依然能正常生成,所以训练、推理不受影响。
  • 部分Colab默认搭载的TensorFlow小版本存在函数式API层追踪的已知bug,也会触发该问题。

解决方案

1. 统一API导入来源(优先尝试,可解决90%以上的同类问题)

所有模型相关的API统一从tf.keras路径导入,不要混合使用独立keras包的导入:

import tensorflow as tf
# 所有层、模型类都从tensorflow.keras下导入
from tensorflow.keras import Input
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Model

# 构建模型代码保持不变
input = Input(shape = (20,))
x = Dense(30, name = 'dense1')(input)
x = Dense(20, name = 'dense2')(x)
output = Dense(1)(x)
model = Model(inputs = input ,outputs = output)
model.compile(loss = 'mse', optimizer = 'adam')

执行后再调用model.layers或model.summary()就能正常显示层信息。

2. 固定版本安装

如果统一导入后仍有问题,重置Colab运行时后先执行版本匹配的安装命令,再运行代码:

!pip uninstall -y keras tensorflow
!pip install tensorflow==2.15.0 keras==2.15.0

安装完成后重启Colab运行时即可。

3. 临时触发方案

如果不想改动导入逻辑,可以手动给模型喂一个dummy输入触发计算图完全构建,再查看层信息:

import numpy as np
# 输入形状和你定义的Input形状一致即可
dummy_input = np.random.random((1, 20))
_ = model(dummy_input)
# 此时再调用就能正常输出
print(model.layers)
model.summary()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 18:36:02