【发布时间】:2021-10-16 07:47:17
【问题描述】:
我是机器学习的新手,现在正在从事一个关于时间序列预测的项目。我很困惑为什么训练模型后的预测数据与实际数据不相似。
我将 tensorflow.js 与 reactjs 一起使用,谁能帮我创建模型有什么问题?下面是关于该模型的代码..
任何帮助我的人都会感激..
...
let x = tf.tensor2d(labels,[labels.length,1]);
let y = tf.tensor2d(inputs,[inputs.length,1]);
let inputSteps = inputs.length / 3;
let labelSteps = labels.length / 3;
let xs = x.reshape([3,inputSteps,1]);
let ys = y.reshape([3,labelSteps,1]);
const epochs = 30;
const window_size = 10;
const batchSize = 3;
const shuffle = true;
const input_layer_neurons = [inputSteps,1];
const rnn_input_shape = input_layer_neurons;
model.add(tf.layers.dense({ inputShape: input_layer_neurons,units:512 }));
let lstm_cells = [];
for(let i=0; i < hiddenLayers; i++){
lstm_cells.push(tf.layers.lstmCell({ units:20 }));
}
model.add(tf.layers.lstm({
cell: lstm_cells,
units: 50,
activation: 'relu',
inputShape: rnn_input_shape,
returnSequences: true
}))
model.add(tf.layers.dense({ units:1,returnSequences:true }));
model.compile({
optimizer: tf.train.adam(0.0005),
loss: tf.losses.meanSquaredError,
metrics:['mse'],
});
const lossError = [],quantityEpochs = [];
await model.fit(xs, ys, {shuffle,batchSize,epochs,callbacks: {
onEpochEnd: async (epoch,log) => {
console.log('loss : ' + log.loss);
lossError.push(log.loss);
quantityEpochs.push(epoch);
}
}});
const outps = model.predict(ys);
...
【问题讨论】:
-
我对@987654323@一无所知,但深度学习中的想法是一样的。我的意思是,您的模型至少给出了一些结果,所以我认为它没有任何问题。因此,添加更多数据、更多层并使模型变得复杂是可行的。
标签: machine-learning deep-learning time-series forecasting tensorflow.js