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

使用Keras(Theano后端)运行DKT代码时class_mode参数无效错误求助

解决Keras中"Invalid argument 'class_mode'"错误的方案

嘿,我来帮你搞定这个运行DKT代码时遇到的Keras错误!这个问题大概率是Keras版本不兼容导致的——你用的Keras版本和DKT代码编写时依赖的版本对不上,才会出现class_mode参数无效的提示。

下面给你具体的解决步骤:

1. 先确认你的Keras版本

先打开终端,运行这条命令看看当前Keras的版本:

python -c "import keras; print(keras.__version__)"

DKT是比较早期的项目,大概率是基于Keras 1.x写的,如果你的环境里装的是Keras 2.x,就会出现参数不兼容的问题,因为Keras 2.x对class_mode的可选值和使用场景做了调整。

2. 两种解决思路任选其一

思路一:降级Keras到兼容版本

如果不想修改代码,直接把Keras降级到DKT适配的版本(比如Keras 1.2.2),终端运行:

pip install keras==1.2.2

这个版本和Theano后端兼容性很好,刚好匹配你用的Python 2.7环境。

思路二:修改DKT代码中的class_mode参数

如果你想保留当前的Keras版本,就找到代码里所有用到class_mode的地方,把它替换成当前Keras版本支持的取值:

  • Keras 2.x中,class_mode常见的合法取值有:'categorical'(多分类)、'binary'(二分类)、'sparse'(稀疏标签)、'input'(输入作为目标)或者None(无标签)
  • 比如找到DKT代码里类似class_mode='xxx'的行,把不符合上述取值的参数替换成对应场景的合法值。举个例子,如果是多分类任务,就改成class_mode='categorical'。

3. 额外检查点

修改完后,再确认模型编译时的loss函数和class_mode是否匹配:

  • 如果用class_mode='categorical',loss应该用'categorical_crossentropy'
  • 如果用class_mode='binary',loss应该用'binary_crossentropy'

这样调整后,再运行代码应该就能解决这个参数错误啦!

内容的提问来源于stack exchange,提问作者Pretty Ninà

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:29:25