Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Javascript Tensorflow预测对于每个目的都是相同的_Javascript_Tensorflow_Chatbot_Tflearn - Fatal编程技术网

Javascript Tensorflow预测对于每个目的都是相同的

Javascript Tensorflow预测对于每个目的都是相同的,javascript,tensorflow,chatbot,tflearn,Javascript,Tensorflow,Chatbot,Tflearn,我的javascript聊天机器人使用tflearn预测它所给出的句子的意图。然而,model.predict()输出的数字几乎相同。我是tflearn/tensorflow的新手,所以我不知道如何解决这个问题或尝试什么 这是我的密码: 意图: {"intents": [ {"tag": "greeting", "patterns": ["Hey", "Hi"

我的javascript聊天机器人使用tflearn预测它所给出的句子的意图。然而,model.predict()输出的数字几乎相同。我是tflearn/tensorflow的新手,所以我不知道如何解决这个问题或尝试什么

这是我的密码:

意图:

{"intents": [
    {"tag": "greeting",
     "patterns": ["Hey", "Hi", "Hello", "Good evening", "Good afternoon"],
     "responses": ["Hello, how are you?", "Hello, how could I help you?"],
     "context_set": ""
    },
    {"tag": "feelings",
     "patterns": ["How are you?", "How are you feeling?"],
     "responses": ["I don't have feelings."]
    }
    etc. (There are more intents)
]
}
模型创建:

      //train_x[0] example: [Array(139), Array(139), Array(139), ... Array(139), Array(139)]
      //Array(139) example: [0,0,0,0,0,1,0 ... 0,0,0]

      // Build neural network:
      const model = tf.sequential();
      model.add(tf.layers.dense({ units: 256, activation: 'relu', inputShape: [train_x[0].length] }));
      model.add(tf.layers.dropout({ rate: 0.25 }));
      model.add(tf.layers.dense({ units: 128, activation: 'relu' }));
      model.add(tf.layers.dropout({ rate: 0.25 }));
      model.add(tf.layers.dense({ units: train_y[0].length, activation: 'softmax' }));
      model.compile({ optimizer: 'adam', loss: 'categoricalCrossentropy', metrics: ['accuracy'] });

      //create tensors
      const xs = tf.tensor(train_x);
      const ys = tf.tensor(train_y);
      
      //train model
      model.fit(xs, ys, {
        epochs: 50,
        batchSize: 8,
        shuffle: true,
        // verbose: 1,
        callbacks: {
          onEpochEnd: async (epoch, log) => {
          console.log("Epoch " + epoch + ": loss = " + log.loss);
        }
      }
模型预测:

await tf.tidy(() => {
        const bowData = bag_of_words(sentence, words);
        //bowData example: [0,0,1, ... 0,0,0]
        var data = tf.tensor2d(bowData, [1, bowData.length]);
        let predictions = model.predict(data).dataSync();
        
        const confidenceLevel = 0.6;
        var results = [];
        var guesses = [];
        predictions.map((prediction, index) => {
        //This is the prediction output
        console.log(prediction)
          if (prediction > confidenceLevel) {
            results.push([index, prediction]);
          } else {
            if (prediction > (confidenceLevel / 2)) { //to be a guesses should be half of the current confidence
              guesses.push([index, prediction]);
            }
          }
        });
预测输出(见:上面的代码):

这些是对所有10种意图的预测。它们的值几乎相同。我如何得到真正的预测?我做错了什么

如果我需要提供更多上下文或信息,请告诉我。非常感谢你的帮助

0.10040047764778137
0.10005078464746475
0.10017916560173035
0.1002182886004448
0.09945645183324814
0.10054658353328705
0.09996658563613892
0.0999939814209938
0.09980299323797226
0.09938466548919678