gpt4 book ai didi

node.js - 转换 tf.fromPixels() 创建的张量时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-03 22:07:28 24 4
gpt4 key购买 nike

我想做的是转换使用 tf.fromPixels() 创建的张量并将其转换为 [28, 28] 然后用作作为从 Python 训练的模型中获取预测的输入。

我遇到的问题是模型中的第一层,其输入形状为[28, 28]。当我使用 tf.fromPixels() 在 NodeJS 中创建张量时,我得到一个形状为 [28, 28, 1] 的张量,但是,当我将其输入到模型预测函数我从模型的第一个扁平层收到一条错误消息。

Error when checking : expected flatten_input to have shape [null, 28, 28] but got array with shape [28, 28, 1]

在继续之前,这是我这部分的代码。

  prediction: async function(image) {
const model = await tf.loadModel("file://models/model.json");

const canvas = createCanvas(28, 28);
const ctx = canvas.getContext("2d");

loadImage(image).then(function(image) {
ctx.drawImage(image, 0, 0, 28, 28);

var image = tf.fromPixels(canvas, 1);
var prediction = model.predict(image);

return prediction;
});
}

我尝试将张量 reshape 为 [28, 28] 并尝试 [null, 28, 28],但是正如您可能想象的那样,当我遇到错误时使用空值。那么我的问题是如何将张量 reshape 为正确的形状?

最佳答案

从 Canvas 中获取图像后,您需要 reshape 张量

 var image = tf.fromPixels(canvas, 1);
image = img.reshape([1, 28, 28]);

然后你可以将张量传递给你的模型

关于node.js - 转换 tf.fromPixels() 创建的张量时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51545231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com