Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:加载模型时无法读取为文件_Javascript_Node.js_Tensorflow_Tensorflow.js - Fatal编程技术网

Javascript 错误:加载模型时无法读取为文件

Javascript 错误:加载模型时无法读取为文件,javascript,node.js,tensorflow,tensorflow.js,Javascript,Node.js,Tensorflow,Tensorflow.js,我认为我犯了一个新手错误,但我很难找出到底出了什么问题 错误: C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing>节点分类rlc.jpg (节点:38620)未处理的PromisejectionWarning:错误:无法读取为文件:“model.json” 在readFile(C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node\u modules\f

我认为我犯了一个新手错误,但我很难找出到底出了什么问题

错误:

C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing>节点分类rlc.jpg
(节点:38620)未处理的PromisejectionWarning:错误:无法读取为文件:“model.json”
在readFile(C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node\u modules\filereader\filereader.JS:266:15)
在FileReader.self.readAsText(C:\Users\awome\Google Drive\Source\Programming\JS\Testing\node\u modules\FileReader\FileReader.JS:295:7)
在C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node\u modules\@tensorflow\tfjs core\dist\io\browser\u files.JS:226:36
在新的承诺下(

  • 库希望文件位于
    loadFromFiles
    函数中。 默认情况下,无法在节点中使用该文件。 所以您需要在节点环境中以某种方式填充它,查看这些库

    使用
    文件api的示例:

    const fs=require('fs');
    const path=require('path');
    const FileAPI=require('file-api');
    const uploadModel=“model.json”
    const uploadModelPath=path.join(process.cwd(),uploadModel);
    //聚填料
    Object.keys(FileApi).forEach(key=>{
    进程[key]=FileApi[key];
    })
    const uploadModelFile=新文件({
    缓冲区:fs.readFileSync(uploadModelPath)
    });
    
    此库非常旧,可能无法使用,您可以尝试搜索其他polyfill库或编写您的库。
    您可以查看文件的读取方式,也可以分叉并添加处理节点文件的可能性。

    使用文件api处理您的解决方案。出现以下错误:C:\Users\Aweasome\Google Drive\Source\Programming\JS\Testing\node\U modules\file\file.JS:35抛出新错误(“无名称”);^错误:在新文件中没有名称(C:\Users\Awesome\Google Drive\Source\Programming\JS\Testing\node\u模块\←[4M文件←[24m\File.js:35:13)在对象上。(C:\Users\Awesome\Google Drive\Source\Programming\js\Testing\classify.js:24:25)”。继续挖掘感谢您的建议。您需要为文件指定名称,如
    name:“abc-song.txt“
    。您可以在node_moduels中看到库的源代码,我曾经通过阅读库的源代码来理解问题。我发现,将mime回滚到以前的版本以解决另一个问题,现在似乎正在执行,但函数“processMetaData”在@teachablemachine中,模块正在为提供的无效metada抛出错误。调查仍在继续,再次感谢。
    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