无法计算情况展示
出错代码
import tensorflow as tf
from tensorflow import keras
# 定义模型
model = keras.models.Sequential([
keras.layers.Embedding(input_dim=2000, output_dim=64, input_length=100),
keras.layers.LSTM(128, return_sequences=True),
keras.layers.Dropout(0.2),
keras.layers.LSTM(64, return_sequences=True),
keras.layers.Dropout(0.2),
keras.layers.LSTM(32),
keras.layers.Dropout(0.2),
keras.layers.Dense(64, activation='relu'),
keras.layers.Dropout(0.2),
keras.layers.Dense(1, activation='sigmoid')
])
# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
# 打印模型概况
model.summary()
结果如图
解决方案
出错原因
出错的原因是在建立模型时我们并没有定义模型输入的形状,所以此时模型建立是并不完整的,这意味着模型不知道输入数据的形状。这不允许 Keras 在内部自动构建模型的每一层,因为每一层都要推断其输入的形状。
解决方案1
在模型建立的开头加入对数据输入形状的定义代码
keras.layers.Input(shape=(100,)),
如下
这样我们就可以成功打印模型概况了
解决方案2
在打印模型概况前加入构建模型代码
# 构建模型
model.build(input_shape=(None, 100)) # None 表示批量大小可以是任意的,100 是输入长度
如下图
结果如下: