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

React Native调用Keras表情识别模型报conv2d_input维度错误如何解决

问题解决办法

核心不匹配点

  • 维度数量不匹配:模型要求4维输入(batch_size, 48, 48, 1),你当前生成的张量只有3维(48,48,3)
  • 通道数不匹配:模型训练用的是单通道灰度图,你当前输出的是3通道RGB图

修改后的代码逻辑

你只需要在原有图片张量处理的基础上,增加RGB转灰度、添加batch维度两步即可,完整处理代码如下:

// 原有解码+尺寸调整逻辑不变
const rgbTensor = decodeJpeg(imageData).resizeBilinear([48,48])
// 3通道RGB转单通道灰度:对最后一维(通道维)做加权平均,保留维度输出shape为[48,48,1]
const grayTensor = tf.mean(rgbTensor, -1, true)
// 在最前方添加batch维度,得到符合模型要求的4维张量[1,48,48,1]
const inputTensor = grayTensor.expandDims(0)
// 可选归一化:和训练阶段预处理对齐,若训练时将像素值除以255缩放到0~1区间,需添加这一步
const normalizedInput = inputTensor.div(255.0)

// 后续直接用normalizedInput传入model.predict()即可
const prediction = model.predict(normalizedInput)

额外注意事项

推理结束后及时调用tf.dispose()清理不需要的中间张量,避免React Native端出现内存泄漏问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 22:30:05