<!DOCTYPE html>
<html>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@2.8.4/dist/tf.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-vis@1.5.1/dist/tfjs-vis.umd.min.js"></script>
<body>
<h2>TensorFlow.js</h2>
<p id="message">Модель тренується!</p>
<div id="myPlot" style="width:100%;max-width:700px"></div>
<script>
// Створення навчальних даних
const xs = tf.tensor([0, 1, 2, 3, 4]);
const ys = xs.mul(1.2).add(5);
// Визначте модель лінійної регресії
const model = tf.sequential();
model.add(tf.layers.dense({units:1, inputShape:[1]}));
// Вкажіть Loss і Optimizer
model.compile({loss: 'meanSquaredError', optimizer:'sgd'});
// Навчити модель
model.fit(xs, ys, {epochs:500}).then(() => {myFunction()});
// Використовуйте модель
function myFunction() {
const xMax = 10;
const xArr = [];
const yArr = [];
for (let x = 0; x <= xMax; x++) {
let result = model.predict(tf.tensor([Number(x)]));
result.data().then(y => {
xArr.push(x);
yArr.push(Number(y));
if (x == xMax) {plot(xArr, yArr)};
});
}
document.getElementById('message').style.display="none";
}
function plot(xArr, yArr) {
// Define Data
const data = [{x:xArr,y:yArr,mode:"markers",type:"scatter"}];
// Визначте макет
const layout = {
xaxis: {range: [0, 10]},
yaxis: {range: [0, 20]},
};
// Показати діаграму
Plotly.newPlot("myPlot", data, layout);
}
</script>
</body>
</html>