首页 > 解决方案 > Brain.js GPU 慢速训练

问题描述

我正在尝试使用 Brain.js 训练神经网络 - 但我想知道我的数据是否已经太大了?

代码:

await getDataSet(type);

  const listings  = await getFilteredListings(type);
  const normalizer = new Normalizer(listings);

  normalizer.setOutputProperties(['runningTime']);
  normalizer.normalize();

  const inputs = normalizer.getBinaryInputDataset();
  const outputs = normalizer.getBinaryOutputDataset();
  const metadata = normalizer.getDatasetMetaData();

  fs.writeFileSync(METADATA_FILE[type],JSON.stringify(metadata));

  const trainingData=[];
  for(let i=0;i<inputs.length;i++){
    trainingData.push({input:inputs[i],output:outputs[i]});
  }
  const options={
    hiddenLayers:[180,60],
  };

  const net = new NeuralNetworkGPU(
    options
  );

  net.train(trainingData,{
    iterations: 60000, // the maximum times to iterate the training data --> number greater than 0
    errorThresh: 0.001, // the acceptable error percentage from training data --> number between 0 and 1
    log:true,
  });

尝试使用亚马逊 GPU 实例 - 但速度非常慢。训练需要100小时。

特征:

export const featureColumns = [
  'location.lat', 'location.lon', 'locationFactor.score', 'constructionYear', 'squareMeter', 'grossReturn','floor',
  'pricePerSqm', 'privateOffer', 'foreClosure', 'rented', 'apartmentType', 'condition'];

如您所见,我有 13 个功能 - 以及大约 50k 的训练数据。为什么需要这么长时间?减少隐藏网络中的单元会加快训练速度,但网络无法理解数据。

标签: javascriptneural-networkbrain.js

解决方案


推荐阅读