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

R语言Keras中predict_classes()已弃用,CNN分类预测替代方案

Keras中predict_classes()的替代方案(R语言)

在Keras中predict_classes()被弃用后,你可以通过以下两种方式从predict()返回的概率结果中提取0-9的数字分类:

方法1:使用基础R函数apply() + which.max()

predict()返回的是每个样本在10个类别上的概率矩阵(每行对应一个样本,每列对应一个数字类别),我们只需要找出每行概率最大的位置,再转换为0-9的数字即可:

# 获取所有类别的概率预测值
prob_matrix <- cnn_model %>% predict(x_test)
# 对每行取概率最大的类别索引,由于which.max返回的是1-10的位置,减1得到0-9的数字
cnn_pred <- apply(prob_matrix, 1, which.max) - 1

方法2:使用TensorFlow/Keras的内置函数

利用TensorFlow的argmax函数或者Keras的k_argmax函数直接提取最大概率的类别索引,效率更高:

prob_matrix <- cnn_model %>% predict(x_test)
# 使用tf$argmax取每行最大值的索引,转换为R整数后减1
cnn_pred <- as.integer(tf$argmax(prob_matrix, axis = 1)) - 1

# 或者用Keras的R接口函数k_argmax
cnn_pred <- prob_matrix %>% k_argmax(axis = 1) %>% as.integer() - 1

注意:如果你的CNN模型最后一层使用的是softmax激活函数(MNIST分类任务的常规配置),那么predict()返回的就是合法的类别概率分布,以上两种方法都能得到正确的0-9数字分类结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:06:26