tensorflow.js中的decodePng抛出形状错误

时间:2020-02-08 02:22:52

标签: node.js typescript tensorflow.js

我正在尝试遵循一个教程,只是想在TensorFlowJS中加载图像。

ReadOnlySpan

运行上面的代码时,我看到此错误:

Utf8JsonReader

图片为3024x4032和10.4MB

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

您可能想尝试fromPixels函数,如下所示:

const { Image } = require('canvas')

// From a buffer:
fs.readFile('images/squid.png', (err, squid) => {
  if (err) throw err
  const img = new Image()
  img.onload = () => ctx.drawImage(img, 0, 0)
  img.onerror = err => { throw err }
  img.src = squid
})

// From a local file path:
const img = new Image()
img.onload = () => ctx.drawImage(img, 0, 0)
img.onerror = err => { throw err }
img.src = 'images/squid.png'

// From a remote URL:
img.src = 'http://picsum.photos/200/300'
// ... as above

var imgAsTensor = tf.fromPixels(img);
// ... now use it as you wish.

您可以在此处了解有关此功能的更多信息:

答案 1 :(得分:1)

问题与进行预测时的张量形状有关。 该模型期望一个具有3个通道的张量,而作为参数传递的时态则具有4个通道。

张量可以切成仅使用其4个通道中的3个。

pngDecodedTensor = tf.node.decodePng(imageArray).slice([0], [-1, -1, 3])