javascript - 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 的训练数据。为什么需要这么长时间?减少隐藏网络中的单元会加快训练速度,但网络无法理解数据。
解决方案
推荐阅读
- python - Pandas datrafame 多行数据不一致
- python - 无法在同一行打印输出
- vue.js - setMethods 已弃用,将在未来版本中删除
- css - 使用 CSS 调整图像的剪切部分的大小
- javascript - 如何在 laravel 中创建 node_module?
- node.js - Sequelize 主应用程序中的 require models/index.js 并在模块文件中传递或 require
- python - Python中递归函数中的转发(?)参数
- javascript - 如何在 Vue 中获得 ReactJS prevProps 和 prevState 等效项
- bash - Bash 中的参数和函数
- c# - 行星的轨迹(linerenderer)不反映Unity 3d的实际运动