initModel = function*(model) {
lossHistory.length = 0
const output = [[0], [1], [1], [0]]
const outputTensor = tf.tensor(output, [output.length, 1]);
model.add(
tf.layers.dense({
inputShape: [2],
units: 2,
activation: 'sigmoid'
})
);
model.add(
tf.layers.dense({
units: 1,
activation: 'sigmoid'
})
)
model.compile({
optimizer: tf.train.adam(0.1),
loss: 'meanSquaredError'
});
yield "training..."
model.fit(inputTensor, outputTensor, {
epochs: 1000,
shuffle: true,
callbacks: {
onEpochEnd: async (epoch, { loss }) => {
lossHistory.push(loss)
}
}
})
yield model
return model
}