我目前正致力于通过 tensorflow.js 在浏览器上运行经过 keras 训练的模型。在传递到我的模型之前,我必须将图像的大小减小到 48x48,因为我训练的所有数据都是那个大小。我已经开始使用以下方法将网络摄像头快照的大小减小到 48x48:
let imgclone = tf.image.resizeBilinear(imgmod, [48,48], true).toFloat();
这使我能够正确地绘制到 Canvas 上,并在较小的 Canvas 上获得实时缩小尺寸的网络摄像头流。然后我将快照传递给我的模型,我收到以下错误:
expected conv2d_1_input to have shape [null,48,48,1] but got array with shape [1,48,48,3].
所以我只是不确定在使用 tensorflow.js 时获取最终形状张量的正确方法。我确实尝试使用 tf.reshape(preprocedimg, [null, 48, 48, 1]) 但是当然这只是修改了形状并提供了一个错误,我的尺寸不匹配。
打算继续搜索谷歌,但我想我也会在这里发帖。如果您能提供任何信息,我们将不胜感激!
请您参考如下方法:
由于要得到形状为48,48,1的张量,可以使用tf.slice
tensor.slice([0,0,0], [48, 48,1])
