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

CNN-LSTM模型始终预测同一类别问题求助

问题描述

我尝试对图像序列进行预测,此前仅用CNN处理拼接后的图像,但在部分数据集上效果不佳。我使用两类数据集:一类用于单张图像分类,另一类用于图像序列分类,通过total_x_test_indexes=tf.expand_dims(total_x_test_indexes, axis=1)实现模型通用。搭建CNN-LSTM模型后,输出的混淆矩阵显示几乎所有样本都被归为同一类别,附上实现代码及混淆矩阵截图,寻求解决办法。

实现代码

inp = Input((None,size_image,size_image,1), ragged=True)

x = TimeDistributed(cnn)(inp)

x = LSTM(25)(x)
size_predictions=len(dicTiposNumbers)
print("tamaño ",size_predictions)
out = Dense(size_predictions)(x)

model = Model(inp, out)

print(model.summary())
opt = keras.optimizers.Adam(learning_rate=0.05)
opt = keras.optimizers.SGD(learning_rate=0.15)
# Compile the model
model.compile(optimizer=opt,
          loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
          metrics=['accuracy'])



print('------------------------------------------------------------------------')
print(f'Training for fold {fold_no} ...')


total_x_train_indexes=tf.gather(total_x,indices=train)
total_y_train_indexes=tf.gather(total_y,indices=train)
total_x_train_indexes=tf.expand_dims(total_x_train_indexes, axis=1)
print("shape after gather",np.shape(total_x_train_indexes[0]))
history = model.fit(total_x_train_indexes, total_y_train_indexes,
            batch_size=512,
            epochs=5)

混淆矩阵现象

混淆矩阵截图

解决建议
  • 排查数据集类别平衡:先统计训练集各类样本数量,若存在严重类别不平衡(某类样本占比极高),模型会自然偏向多数类。解决方式包括:对少数类过采样、多数类欠采样,或在model.fit中设置class_weight参数赋予少数类更高权重。
  • 修正损失函数配置:输出层Dense(size_predictions)未添加激活函数,输出为logits,但编译时设置from_logits=False,会导致损失计算错误。需将from_logits改为True,或给Dense层添加activation='softmax'。
  • 调整优化器与学习率:当前先定义Adam后覆盖为SGD,且SGD学习率0.15过高,易导致模型训练震荡无法收敛。建议改用Adam优化器,初始学习率设为0.001,后续根据训练曲线微调。
  • 增加训练轮数:仅训练5轮不足以让模型学习到有效特征,建议将epochs调至20-50,同时添加EarlyStopping回调函数,监控验证集准确率或损失,防止过拟合。
  • 检查CNN输出维度:确保TimeDistributed包装的CNN最后使用全局池化层(如GlobalAveragePooling2D),将单张图像的特征压缩为一维向量,否则LSTM无法有效处理高维序列特征。
  • 验证输入数据格式:确认total_x_train_indexes的shape与模型输入匹配,RaggedTensor的处理逻辑正确。可打印输入的具体维度,确保序列长度、图像尺寸等参数符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:30:58