有人会帮我这个TensorFlow JS项目吗? 这是一个具有机器学习功能的聊天机器人,我坚持使用“构建神经网络”, giveme this error
项目链接:https://github.com/ran-j/ChatBotNodeJS
/routes/index.js第189行的培训代码
//Build neural network
model = tf.sequential();
model.add(tf.layers.dense({inputShape: [documents.length], units: 100}));
model.add(tf.layers.dense({units: 4}));
model.compile({loss: 'categoricalCrossentropy', optimizer: 'sgd'});
model.fit(xs, ys, {epochs: 1000});
答案 0 :(得分:1)
该错误表明为模型定义的形状与模型使用的张量(训练或测试张量)之间不匹配。
为了消除错误,您需要两个形状都匹配。
预计density_Dense1_input的形状为a,但数组的形状为b
在错误中, a 是模型的形状,而 b 是引发错误的张量的形状。因此,需要将模型的形状更改为 b 还是将张量的形状更改为 a 。
最简单的方法是将模型形状更改为 b ,因为第二种方法将暗示张量的重塑,即
model.add(tf.layers.dense({inputShape: b, units: 100}));
鉴于问题的模型,它将是
model.add(tf.layers.dense({inputShape: [27, 48], units: 100}));
答案 1 :(得分:0)
documents.length
是您拥有的训练数据量,而不是模型的inputShape。因此,您的训练数据的模型形状不正确。
正确的形状应为xs.shape
。
所以您的拳头层应该是:
tf.layers.dense({inputShape: xs.shape, units: 100})