首页
/ brain.js 技术文档

brain.js 技术文档

2024-12-20 12:15:34作者:谭伦延

1. 安装指南

在 Node.js 中安装

如果你使用的是 Node.js 环境,可以通过 npm 安装 brain.js

npm install brain

在浏览器中使用

在浏览器中使用时,需要下载最新的 brain.js 文件。由于训练过程计算量较大,建议在离线环境或使用 Worker 进行训练,然后通过 toFunction()toJSON() 方法将预训练的网络导入到你的网站中。

2. 项目的使用说明

基本使用

brain.js 是一个 JavaScript 神经网络库,可以用于训练和运行简单的神经网络。以下是一个使用 brain.js 来近似 XOR 函数的示例:

var net = new brain.NeuralNetwork();

net.train([{input: [0, 0], output: [0]},
           {input: [0, 1], output: [1]},
           {input: [1, 0], output: [1]},
           {input: [1, 1], output: [0]}]);

var output = net.run([1, 0]);  // [0.987]

训练数据格式

每个训练数据应包含 inputoutput,它们可以是 0 到 1 之间的数组或对象。例如,颜色对比示例中的训练数据格式如下:

var net = new brain.NeuralNetwork();

net.train([{input: { r: 0.03, g: 0.7, b: 0.5 }, output: { black: 1 }},
           {input: { r: 0.16, g: 0.09, b: 0.2 }, output: { white: 1 }},
           {input: { r: 0.5, g: 0.5, b: 1.0 }, output: { white: 1 }}]);

var output = net.run({ r: 1, g: 0.4, b: 0 });  // { white: 0.99, black: 0.002 }

训练选项

train() 方法的第二个参数可以传入一个选项对象,用于控制训练过程:

net.train(data, {
  errorThresh: 0.005,  // 错误阈值
  iterations: 20000,   // 最大训练迭代次数
  log: true,           // 是否定期输出训练进度
  logPeriod: 10,       // 输出训练进度的间隔迭代次数
  learningRate: 0.3    // 学习率
})

训练将在达到错误阈值或达到最大迭代次数时停止。

3. 项目API使用文档

train()

用于训练神经网络。接受一个包含训练数据的数组和一个选项对象。

run()

用于运行训练好的神经网络,接受一个输入数据并返回输出结果。

toJSON()

将神经网络的状态序列化为 JSON 格式,便于保存和加载。

fromJSON()

从 JSON 格式加载神经网络的状态。

toFunction()

生成一个独立的函数,该函数可以直接运行训练好的神经网络,无需导入 brain.js

4. 项目安装方式

Node.js 安装

通过 npm 安装:

npm install brain

浏览器使用

下载最新的 brain.js 文件,并在页面中引入:

<script src="path/to/brain.js"></script>

使用 Stream 进行训练

可以通过创建 WriteStream 来使用流式数据进行训练。具体示例可以参考 stream-example.js 文件。

var trainStream = net.createTrainStream({
  floodCallback: function() {
    // 重新填充数据流
  },
  doneTrainingCallback: function(info) {
    // 训练完成后的回调
  }
});

通过 pipe() 方法将数据流连接到 trainStream,实现流式训练。

登录后查看全文
热门项目推荐
相关项目推荐