TypeError: trackerFn(...).registerTensor is not a function
TypeError: trackerFn(...).registerTensor is not a function
这是我的设置:
- 节点-v : v12.8.1
- Python 3.7.1
- 系统版本:macOS 10.14.1 (18B75)
Package.json:
"@tensorflow-models/mobilenet": "^2.0.4",
"@tensorflow/tfjs": "^1.6.0",
"@tensorflow/tfjs-node": "^1.2.11",
注意:必须更改为这些设置才能解决
我的文件架构:
** 我的代码:**
const readImage = path => {
const imageBuffer = fs.readFileSync(path);
const tfimage = tfnode.node.decodeImage(imageBuffer);
return tfimage;
}
const performTheImageClassification = async path => {
const image = readImage("img_to_predict/actual.jpeg");
const mobilenetModel = await mobilenet.load();
const predictions = await mobilenetModel.classify(image);
console.log('Classification Results:', predictions);
}
终端输出:
(node:65191) UnhandledPromiseRejectionWarning: TypeError: trackerFn(...).registerTensor is not a function
at new Tensor (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/node_modules/@tensorflow/tfjs-core/dist/tensor.js:246:21)
at Function.Tensor.make (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/node_modules/@tensorflow/tfjs-core/dist/tensor.js:261:16)
at makeTensor (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops.js:98:28)
at Object.scalar (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops.js:127:12)
at NodeJSKernelBackend.decodeJpeg (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/dist/nodejs_kernel_backend.js:1513:38)
at /Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/dist/image.js:103:14
at /Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs/node_modules/@tensorflow/tfjs-core/dist/engine.js:388:22
at Engine.scopedRun (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs/node_modules/@tensorflow/tfjs-core/dist/engine.js:398:23)
at Engine.tidy (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs/node_modules/@tensorflow/tfjs-core/dist/engine.js:387:21)
at Object.tidy (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/node_modules/@tensorflow/tfjs-core/dist/globals.js:172:28)
at decodeJpeg (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/dist/image.js:101:24)
at Object.decodeImage (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/dist/image.js:209:20)
at readImage (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/server.js:97:31)
at performTheImageClassification (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/server.js:88:19)
at client.search.then.then (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/server.js:81:12)
at process._tickCallback (internal/process/next_tick.js:68:7)
我有完全相同的错误,当我试图修复这个错误时,其他错误出现了,这个错误一直持续着。我最终得到了 3 个不同版本的 tfjs tfjs-node 和 mobilenet。
而且我认为这个错误肯定是由版本不匹配引起的。我通过删除 nodemodules 文件夹下的 tensorflow 文件夹 来修复它,然后只是 运行
npm i @tensorflow/tfjs @tensorflow/tfjs-node
我特别指出,因为首先我试图通过 运行ning npm uninstall 命令只卸载这两个包,然后重新安装它们,但显然在 nodemodules 世界中事情比这更复杂所以你需要卸载整个tensorflow包,因为例如我有一个完全不同版本的tfjs-converter,另一个版本的tfjs-core, tfjs-data 它真的很混乱所以确保你删除了整个 tensorflow 包和 运行 上面写的命令来安装必要的包。
这将自动安装这两个包的最新版本,当我发布此答案时,它们应该是 1.7.4。现在它对我来说完美无缺,我希望它也对你有用。
这是我的 package.json 如果你想确定的话:
"@tensorflow-models/mobilenet": "^2.0.4",
"@tensorflow/tfjs": "^1.7.4",
"@tensorflow/tfjs-node": "^1.7.4",
这是我的设置:
- 节点-v : v12.8.1
- Python 3.7.1
- 系统版本:macOS 10.14.1 (18B75)
Package.json:
"@tensorflow-models/mobilenet": "^2.0.4",
"@tensorflow/tfjs": "^1.6.0",
"@tensorflow/tfjs-node": "^1.2.11",
注意:必须更改为这些设置才能解决
我的文件架构:
** 我的代码:**
const readImage = path => {
const imageBuffer = fs.readFileSync(path);
const tfimage = tfnode.node.decodeImage(imageBuffer);
return tfimage;
}
const performTheImageClassification = async path => {
const image = readImage("img_to_predict/actual.jpeg");
const mobilenetModel = await mobilenet.load();
const predictions = await mobilenetModel.classify(image);
console.log('Classification Results:', predictions);
}
终端输出:
(node:65191) UnhandledPromiseRejectionWarning: TypeError: trackerFn(...).registerTensor is not a function
at new Tensor (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/node_modules/@tensorflow/tfjs-core/dist/tensor.js:246:21)
at Function.Tensor.make (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/node_modules/@tensorflow/tfjs-core/dist/tensor.js:261:16)
at makeTensor (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops.js:98:28)
at Object.scalar (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/node_modules/@tensorflow/tfjs-core/dist/ops/tensor_ops.js:127:12)
at NodeJSKernelBackend.decodeJpeg (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/dist/nodejs_kernel_backend.js:1513:38)
at /Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/dist/image.js:103:14
at /Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs/node_modules/@tensorflow/tfjs-core/dist/engine.js:388:22
at Engine.scopedRun (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs/node_modules/@tensorflow/tfjs-core/dist/engine.js:398:23)
at Engine.tidy (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs/node_modules/@tensorflow/tfjs-core/dist/engine.js:387:21)
at Object.tidy (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/node_modules/@tensorflow/tfjs-core/dist/globals.js:172:28)
at decodeJpeg (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/dist/image.js:101:24)
at Object.decodeImage (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/node_modules/@tensorflow/tfjs-node/dist/image.js:209:20)
at readImage (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/server.js:97:31)
at performTheImageClassification (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/server.js:88:19)
at client.search.then.then (/Users/cyrus/Documents/Code/01. Code/debord_slow_sender_meme/server.js:81:12)
at process._tickCallback (internal/process/next_tick.js:68:7)
我有完全相同的错误,当我试图修复这个错误时,其他错误出现了,这个错误一直持续着。我最终得到了 3 个不同版本的 tfjs tfjs-node 和 mobilenet。
而且我认为这个错误肯定是由版本不匹配引起的。我通过删除 nodemodules 文件夹下的 tensorflow 文件夹 来修复它,然后只是 运行
npm i @tensorflow/tfjs @tensorflow/tfjs-node
我特别指出,因为首先我试图通过 运行ning npm uninstall 命令只卸载这两个包,然后重新安装它们,但显然在 nodemodules 世界中事情比这更复杂所以你需要卸载整个tensorflow包,因为例如我有一个完全不同版本的tfjs-converter,另一个版本的tfjs-core, tfjs-data 它真的很混乱所以确保你删除了整个 tensorflow 包和 运行 上面写的命令来安装必要的包。
这将自动安装这两个包的最新版本,当我发布此答案时,它们应该是 1.7.4。现在它对我来说完美无缺,我希望它也对你有用。
这是我的 package.json 如果你想确定的话:
"@tensorflow-models/mobilenet": "^2.0.4",
"@tensorflow/tfjs": "^1.7.4",
"@tensorflow/tfjs-node": "^1.7.4",