Это простая реализация персептрона в TensorFlow js. Его цель - определить значение меньше 0,5 или нет. Но потеря не может быть ниже 0,6 и не расходится. Что не так с моим кодом?
import * as tf from "@tensorflow/tfjs-node-gpu";
async function simplePerceptron() {
const model = tf.sequential();
model.add(tf.layers.inputLayer({ inputShape: [1] }));
model.add(tf.layers.dense({ units: 2, activation: "sigmoid", trainable: true }));
const size = 100;
const xs = tf.randomUniform([size, 1]);
const temp = xs.less(0.5);
const ys = temp.stack(temp.logicalNot()).reshape([2, size]).transpose().cast("float32");
model.compile({
loss: tf.losses.softmaxCrossEntropy,
optimizer: "sgd",
});
await model.fit(xs, ys, { epochs: 100 });
}