import * as tf from "@tensorflow/tfjs";
const xArray = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[8, 7, 6, 5],
[1, 2, 3, 4],
];
const x1Array = [
[0, 1, 0.5, 0],
[1, 0.5, 0, 1],
[0.5, 1, 1, 0],
[1, 0, 0, 1],
];
const yArray = [1, 2, 3, 4];
const y1Array = [4, 3, 2, 1];
// Create a dataset from the JavaScript array.
const xDataset = tf.data.array(xArray);
const x1Dataset = tf.data.array(x1Array);
const y1Dataset = tf.data.array(x1Array);
const yDataset = tf.data.array(yArray);
// Combining the Dataset with zip function
const xyDataset = tf.data
.zip({ xs: xDataset, ys: yDataset })
.batch(4)
.shuffle(4);
const xy1Dataset = tf.data
.zip({ xs: x1Dataset, ys: y1Dataset })
.batch(4)
.shuffle(4);
// Creating model
const model = tf.sequential();
model.add(
tf.layers.dense({
units: 1,
inputShape: [4],
})
);
// Compiling model
model.compile({ loss: "meanSquaredError",
optimizer: "sgd", metrics: ["acc"] });
// Using tf.callbacks.earlyStopping in fitDataset.
const history = await model.fitDataset(xyDataset, {
epochs: 10,
validationData: xy1Dataset,
callbacks: tf.callbacks.earlyStopping({
monitor: "val_acc" }),
});
// Printing value
console.log("The value of val_acc is :",
history.history.val_acc);