- 我使用
tensorflow JS
来进行图像分类。 - 我在浏览器indexDB中以数据格式(又名数据
data:image/jpeg;base64,/9j/4A...
)存储训练图像
当我训练的时候,我使用这个函数,它应该把我的数据IMG转换成Tensor。
const imageToTensor = (imageData: string) => {
// convert base64 to Image for the fromPixels
const img = new Image()
img.src = imageData
img.width = 224
img.height = 224
const imageFeatures = tf.tidy(function () {
const imageAsTensor = tf.browser.fromPixels(img)
imageAsTensor.print()
return imageAsTensor
})
return imageFeatures
}
但我的imageAsTensor.print()
显示的只是一堆000
Tensor
[[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
...
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]],
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
...,
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]]
看不出我做错了什么。我错过了等待还是什么?
谢谢你的帮助。
1条答案
按热度按时间8yparm6h1#
很难发现这个代码片段的问题,但是
fromPixels
方法需要一个HTML canvas元素或image元素作为输入,但是您传递的是一个尚未加载的image元素。您可以这样编辑:然后使用
await
关键字等待承诺解决,然后在模型中使用图像Tensor。