<html>
<body id='body'>
<button onclick="StartData(event)"> Start</button>
<button onclick="getStopCordinates(event)">Stop</button>
<script>
let inputs = [];
let labels = [];
function Mouse(event) {
inputs.push({ x: event.clientX, y: event.clientY })
}
function StartData() {
document.getElementById('body').addEventListener("mouseover", Mouse())
}
function getStopCordinates(event) {
labels.push({ x: event.clientX, y: event.clientY })
document.getElementById('body').removeEventListener("mouseover", Mouse())
}
</script>
</body>
</html>
Я использую код выше, чтобы захватить все координаты XY мыши в теле.Когда пользователь перемещает указатель в сторону кнопки остановки, я фиксирую все координаты x, y для этого.и когда пользователь нажимает кнопку остановки, я также фиксирую координаты остановки.Теперь я хочу обучить модель Tensflow Flow JS из захваченных точек, чтобы, когда пользователь перемещает мышь с той же траекторией, я мог предсказать, что он нажмет кнопку остановки.
Код тензорного потока:
const model = tf.sequential();
// Add a single hidden layer
model.add(tf.layers.dense({inputShape: [2], units: 1, useBias: true}));
// Add an output layer
model.add(tf.layers.dense({units: 1, useBias: true}));
const inputTensor = tf.tensor2d(inputs, [inputs.length, 1]);
const labelTensor = tf.tensor2d(labels, [labels.length, 1]);
trainModel(model,inputs,labels)
async function trainModel(model, inputs, labels) {
// Prepare the model for training.
model.compile({
optimizer: tf.train.adam(),
loss: tf.losses.meanSquaredError,
metrics: ['mse'],
});
const batchSize = 32;
const epochs = 50;
return await model.fit(inputs, labels, {
batchSize,
epochs,
shuffle: true,
callbacks: tfvis.show.fitCallbacks(
{ name: 'Training Performance' },
['loss', 'mse'],
{ height: 200, callbacks: ['onEpochEnd'] }
)
});
}
но этот код выдает ошибку, поскольку входные данные и метки не совпадают, так как исправить этот код для приведенного выше результата?