У меня возникла небольшая проблема при попытке сделать модель LSTM с тензорным потоком. js, но я все время сталкиваюсь с этой ошибкой:
Uncaught (in promise) Error: Layer lstmLayer is not connected, no input to return.
Я не уверен, как это происходит , Я пытался изменить код несколькими способами, но это всегда приводит к этой ошибке. Я просто не могу понять, в чем проблема, она работала просто отлично перед добавлением слоя LSTM. Я не лучший с javascript версией Tensorflow, поэтому любые указатели очень помогут. Я просто пытаюсь заставить его работать, чтобы я мог продолжать изменять его, чтобы лучше делать то, что я хочу в конце.
createModel() {
return tf.tidy(() => {
const inputLayer = tf.input({
shape: [this.memoryLength, this.inputNodes],
name: "inputLayer"
});
const lstmLayer = tf.layers.lstm({
units: 8,
returnSequences: true,
name: "lstmLayer"
}).apply(inputLayer);
const hiddenLayer1 = tf.layers.dense({
units: this.hiddenNodes1,
activation: 'sigmoid',
name: "hiddenLayer1"
}).apply(lstmLayer);
const dropout1 = tf.layers.dropout({
rate: 0.2,
name: "dropout1"
}).apply(hiddenLayer1);
const flattenLayer = tf.layers.flatten({
name: "flattenLayer"
}).apply(dropout1);
const hiddenLayer2 = tf.layers.dense({
units: this.hiddenNodes2,
activation: 'sigmoid',
name: "hiddenLayer2"
}).apply(flattenLayer);
const dropout2 = tf.layers.dropout({
rate: 0.2,
name: "dropout2"
}).apply(hiddenLayer2);
const hiddenLayer3 = tf.layers.dense({
units: this.hiddenNodes3,
activation: 'sigmoid',
name: "hiddenLayer3"
}).apply(flattenLayer);
const dropout3 = tf.layers.dropout({
rate: 0.2,
name: "dropout3"
}).apply(hiddenLayer3);
const outputLayer1 = tf.layers.dense({
units: this.inputNodes,
activation: 'softmax',
name: "outputLayer1"
}).apply(dropout2);
const outputLayer2 = tf.layers.dense({
units: this.outputNodes,
activation: 'softmax',
name: "outputLayer2"
}).apply(dropout3);
const model = tf.model({
inputs: [inputLayer],
outputs: [outputLayer1, outputLayer2],
name: "model"
});
model.summary();
return model;
});
}