我在Node.js应用程序中使用tfjs-node来加载模型和预测结果。它提供了不错的结果,但对于某些图像,显示了以下错误:
Error when checking : expected input to have shape [null,300,300,3] but got array with shape [1,300,300,4].
加载和预测结果的代码:
const loadModel = async (imagePath) => {
const image = fs.readFileSync(imagePath);
let tensor = tf.node.decodeImage(image);
const resizedImage = tensor.resizeNearestNeighbor([300, 300]);
const batchedImage = resizedImage.expandDims(0);
const input = batchedImage.toFloat().div(tf.scalar(255));
const model = await tf.loadLayersModel(
process.env.ML_MODEL_PATH || "file://./ml-model/model.json"
);
let predictions = await model.predict(input).data();
predictions = Array.from(predictions);
};
怎么解决?谢谢。
1条答案
按热度按时间cnjp1d6j1#
用途
如果允许图像具有类似PNG的透明度,则它将去除α。
Tensorflow documentation source.
另一种可能性是你有CMYK图像。对于这一点我不知道答案,除了你可以尝试转换为RGB。