【发布时间】:2020-04-26 04:32:24
【问题描述】:
我认为我犯了一个新手错误,但我无法弄清楚出了什么问题。
错误:
C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing>node classify rlc.jpg
(node:38620) UnhandledPromiseRejectionWarning: Error: cannot read as File: "model.json"
at readFile (C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node_modules\filereader\FileReader.js:266:15)
at FileReader.self.readAsText (C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node_modules\filereader\FileReader.js:295:7)
at C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node_modules\@tensorflow\tfjs-core\dist\io\browser_files.js:226:36
at new Promise (<anonymous>)
at BrowserFiles.<anonymous> (C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node_modules\@tensorflow\tfjs-core\dist\io\browser_files.js:159:39)
at step (C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node_modules\@tensorflow\tfjs-core\dist\io\browser_files.js:48:23)
at Object.next (C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node_modules\@tensorflow\tfjs-core\dist\io\browser_files.js:29:53)
at C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node_modules\@tensorflow\tfjs-core\dist\io\browser_files.js:23:71
at new Promise (<anonymous>)
at __awaiter (C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node_modules\@tensorflow\tfjs-core\dist\io\browser_files.js:19:12)
(node:38620) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag--unhandled-rejections=strict(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:38620) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future,
promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
代码:
const tf = require('@tensorflow/tfjs');
const tfnode = require('@tensorflow/tfjs-node');
const tmImage = require('@teachablemachine/image');
const fs = require('fs');
global.FileReader = require('filereader');
const uploadModel = "model.json"
const uploadWeights = "weights.bin"
const uploadMetadata = "metadata.json"
const readImage = path => {
const imageBuffer = fs.readFileSync(path);
const tfimage = tfnode.node.decodeImage(imageBuffer);
return tfimage;
}
const imageClassification = async path => {
const image = readImage(path);
const model = await tmImage.loadFromFiles(uploadModel,uploadWeights,uploadMetadata);
const predictions = await model.predict(image);
console.log('Classification Results:', predictions);
}
if (process.argv.length !== 3) throw new Error('Incorrect arguments: node classify.js <IMAGE_FILE>');
imageClassification(process.argv[2]);
文件结构:
/Testing
/node_modules
classify.js
metadata.json
model.json
package-lock.json
rlc.jpg
weights.bin
背景:试图利用我所学到的部署图像分类模型,该模型内置于带有本机 javascript 的可教机器中,并将其适应节点 js。我是一个新手,我正在考虑节点和浏览器之间的环境差异,我遵循的所有教程都基于这些差异。
我正在学习的教程:
【问题讨论】:
标签: javascript node.js tensorflow tensorflow.js