Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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
Machine learning LSTM:弄清楚图书馆?_Machine Learning_Lstm - Fatal编程技术网

Machine learning LSTM:弄清楚图书馆?

Machine learning LSTM:弄清楚图书馆?,machine-learning,lstm,Machine Learning,Lstm,我在用图书馆 我试图预测以下系列中的下一个值(值X): 0 0 0 1 0 0 0 1 0 0 0 X 应该是1 代码如下: const options = { peepholes: Layer.connectionType.ALL_TO_ALL, hiddenToHidden: false, outputToHidden: false, outputToGates: false, inputToOutput: true, }; // 1 input,

我在用图书馆

我试图预测以下系列中的下一个值(值X):

0 0 0 1 0 0 0 1 0 0 0 X
应该是
1

代码如下:

const options = {
    peepholes: Layer.connectionType.ALL_TO_ALL,
    hiddenToHidden: false,
    outputToHidden: false,
    outputToGates: false,
    inputToOutput: true,
};
// 1 input, 3 hidden layers (4 nodes per layer), 1 output
const lstm = new Architect.LSTM(1, 4, 4, 4, 1, options);
const trainingArray = [
    {
        input: [0],
        output: [0],
    },
    {
        input: [0],
        output: [0],
    },
    {
        input: [0],
        output: [1],
    },
    {
        input: [1],
        output: [0],
    },
    {
        input: [0],
        output: [0],
    },
    {
        input: [0],
        output: [0],
    },
    {
        input: [0],
        output: [1],
    },
    {
        input: [1],
        output: [0],
    },
];
const trainingOptions = {
    rate: 0.1,
    iterations: 100000,
    error: 0.05,
    cost: null,
    crossValidate: null,
};
let results = lstm.trainer.train(trainingArray, trainingOptions);
console.log(results);
array = [
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
];
results = lstm.activate(array);
console.log(results);
控制台中的输出:

{ error: 0.049765018466871494, iterations: 673, time: 392 }
[ 0.05010961302724895 ]

我希望激活的结果是一个接近1的值,而不是0(更接近)。我不知道这是否是我缺乏LSTM知识的图书馆。有人能给我指出正确的方向吗?

我通读了源代码,并把它弄明白了

const synaptic = require('synaptic');

const Architect = synaptic.Architect;
const Layer = synaptic.Layer;

const lstmOptions = {
    peepholes: Layer.connectionType.ALL_TO_ALL,
    hiddenToHidden: false,
    outputToHidden: false,
    outputToGates: false,
    inputToOutput: true,
};
const lstm = new Architect.LSTM(1, 4, 4, 4, 1, lstmOptions);

const trainSet = [
    { input: [0], output: [0.1] },
    { input: [1], output: [0.2] },
    { input: [0], output: [0.3] },
    { input: [1], output: [0.4] },
    { input: [0], output: [0.5] },
];
const trainOptions = {
    rate: 0.2,
    iterations: 10000,
    error: 0.005,
    cost: null,
    crossValidate: null,
};
const trainResults = lstm.trainer.train(trainSet, trainOptions);
console.log(trainResults);

const testResults = [];
testResults[0] = lstm.activate([0]);
testResults[1] = lstm.activate([1]);
testResults[2] = lstm.activate([0]);
testResults[3] = lstm.activate([1]);
testResults[4] = lstm.activate([0]);
console.log(testResults);
结果:

{ error: 0.004982436660844655, iterations: 2010, time: 384 }
[ [ 0.18288280009908592 ],
  [ 0.2948083898027347 ],
  [ 0.35061782593064206 ],
  [ 0.3900799575806566 ],
  [ 0.49454852760556606 ] ]
准确无误。

neataptic