TensofrlowJS 输入与模型预期输入不匹配
TensofrlowJS input mismatch from model expected input
我将 Keras 模型转换为 tfjs,当 运行 它在浏览器中出现时,我收到以下警告:
topology.ts:1114 The shape of the input tensor ([null,1024]) does not match the expectation of layer dense: [null,[224,224,3]]
模型摘要如下所示:
_________________________________________________________________
Layer (type) Output shape Param #
=================================================================
mobilenet_1.00_224 (Model) [null,1024] 3228864
_________________________________________________________________
dense (Dense) [null,256] 262400
_________________________________________________________________
dropout (Dropout) [null,256] 0
_________________________________________________________________
dense_1 (Dense) [null,512] 131584
_________________________________________________________________
dropout_1 (Dropout) [null,512] 0
_________________________________________________________________
dense_2 (Dense) [null,7] 3591
=================================================================
Total params: 3626439
Trainable params: 397575
Non-trainable params: 3228864
对于预测,我实施了以下方法:
async function classifyImage() {
const cam = await tf.data.webcam(video); //video is a webcam element with 224x224 pixels
const img = await cam.capture();
console.log(img.shape);
let new_frame = img.reshape([1, 224, 224, 3]);
predictions = await model.predict(new_frame).print();
}
如何解决警告信息?
错误很简单。该模型期望输入形状为 [b, 1024](b 表示批量大小)。您将形状为 [1, 224, 224, 3] 的图像作为参数传递给模型。不用说它不会起作用。
要使预测有效,模型的输入应与预测的张量形状相匹配。输入模型发生变化或图像以适合模型的方式重塑。
我将 Keras 模型转换为 tfjs,当 运行 它在浏览器中出现时,我收到以下警告:
topology.ts:1114 The shape of the input tensor ([null,1024]) does not match the expectation of layer dense: [null,[224,224,3]]
模型摘要如下所示:
_________________________________________________________________
Layer (type) Output shape Param #
=================================================================
mobilenet_1.00_224 (Model) [null,1024] 3228864
_________________________________________________________________
dense (Dense) [null,256] 262400
_________________________________________________________________
dropout (Dropout) [null,256] 0
_________________________________________________________________
dense_1 (Dense) [null,512] 131584
_________________________________________________________________
dropout_1 (Dropout) [null,512] 0
_________________________________________________________________
dense_2 (Dense) [null,7] 3591
=================================================================
Total params: 3626439
Trainable params: 397575
Non-trainable params: 3228864
对于预测,我实施了以下方法:
async function classifyImage() {
const cam = await tf.data.webcam(video); //video is a webcam element with 224x224 pixels
const img = await cam.capture();
console.log(img.shape);
let new_frame = img.reshape([1, 224, 224, 3]);
predictions = await model.predict(new_frame).print();
}
如何解决警告信息?
错误很简单。该模型期望输入形状为 [b, 1024](b 表示批量大小)。您将形状为 [1, 224, 224, 3] 的图像作为参数传递给模型。不用说它不会起作用。
要使预测有效,模型的输入应与预测的张量形状相匹配。输入模型发生变化或图像以适合模型的方式重塑。