簡體   English   中英

XOR神經網絡返回垃圾

[英]XOR Neural network returning rubish

我在Tensorflow.js中的XOR“神經網絡”不斷返回垃圾預測 ,並且損失始終停留在0.25 我不知道我做錯了什么。 謝謝您的幫助!

 const model = tf.sequential(); model.add(tf.layers.dense({units: 2, activation: 'sigmoid', inputShape: [2]})); model.add(tf.layers.dense({units: 1, activation: 'sigmoid'})); model.compile({loss:'meanSquaredError', optimizer: 'sgd'}); tf.train.sgd(0.5); const xs = tf.tensor2d([[0,0],[0,1],[1,0],[1,1]]); const ys = tf.tensor2d([[0],[1],[1],[0]]); async function train() { for(let i = 0; i < 200; i++){ const history = await model.fit(xs, ys, {epochs: 20, shuffle: true}); console.log("loss: " + history.history.loss[19] + " on " + i + ". iteration."); } } train().then(() => { console.log("trained with " + tf.memory().numTensors + "tensors"); model.predict(xs).print(); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/tensorflow/0.13.0/tf.min.js"></script> 

我已經更改了優化程序,並且可以預期。

    [[0.0156993],
     [0.985333 ],
     [0.9862437],
     [0.0150503]]

 const model = tf.sequential(); model.add(tf.layers.dense({units: 2, activation: 'sigmoid', inputShape: [2]})); model.add(tf.layers.dense({units: 1, activation: 'sigmoid'})); const optimizer = tf.train.adam(0.01); model.compile({loss:'meanSquaredError', optimizer: optimizer }); const xs = tf.tensor2d([[0,0],[0,1],[1,0],[1,1]]); const ys = tf.tensor2d([[0],[1],[1],[0]]); async function train() { for(let i = 0; i < 200; i++){ const history = await model.fit(xs, ys, {epochs: 20, shuffle: true}); console.log("loss: " + history.history.loss[19] + " on " + i + ". iteration."); } } train().then(() => { console.log("trained with " + tf.memory().numTensors + "tensors"); model.predict(xs).print(); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/tensorflow/0.13.0/tf.min.js"></script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM