【问题标题】:Can't run brain.js with json file无法使用 json 文件运行 Brain.js
【发布时间】:2022-04-06 15:40:34
【问题描述】:

尝试从 JSON 加载网络会导致以下错误

错误:必须在初始化之前设置尺寸。

我的js代码:

let brain = require('brain.js');
let fs = require('fs');
let fileContent = fs.readFileSync("network.j
son", "utf8");
const net = new brain.NeuralNetwork();
console.log(fileContent);
net.fromJSON(fileContent);
console.log(net.run([1,0]));

如果我只是要求将 json 输出到控制台,那么一切正常,如果我在代码中创建

let json = {...};

一切正常,但是当我尝试从 Json 文件加载时,出现错误

【问题讨论】:

    标签: javascript node.js json brain.js


    【解决方案1】:

    fs.readFileSync 根据https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options返回一个字符串

    fs.readFileSync(path[, options])#

    路径 字符串 |缓冲区 |网址 |整数文件名或文件描述符

    选项 对象 |字符串

    编码字符串 | null 默认值:null

    返回:字符串 |缓冲区

    因此,在使用 net.fromJSON 之前,您需要将您的 fileContent 传递给 JSON.parse 以将您的 JSON 字符串(来自 fs.readFileSync 的结果)解析为 JavaScript 值或对象。

    
    let fileContent = fs.readFileSync("network.json", "utf8");
    let fileContentJSON = JSON.parse(fileContent);
    const net = new brain.NeuralNetwork();
    
    net.fromJSON(fileContentJSON);
    
    

    【讨论】:

    • JSON.parse 将 JSON 字符串更改为 JavaScript 对象(或数组或 JSON 表示的任何内容)。
    • 他所说的只是 fromJSON 需要一个对象,这是正确的。我是相关库的维护者。
    猜你喜欢
    • 2017-08-13
    • 1970-01-01
    • 2022-10-12
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 2016-05-31
    • 1970-01-01
    • 2023-01-10
    相关资源
    最近更新 更多