tensorflow.js Приостанавливает работу, пока окно браузера невидимо

#gpu #cpu #background-process #tensorflow.js

#gpu #Процессор #фоновый процесс #tensorflow.js

Вопрос:

Я работаю над tensorflow.js примеры. После выполнения функции подгонки epoches начинает работать без каких-либо проблем.

Но когда я сворачиваю окно браузера или открываю другую вкладку или открываю другое окно программы, Epoches приостанавливает работу и при открытии браузера tensorflow.js пример снова, он продолжает соответствовать и отправляет логи на консоль.

Моя система — Windows 10, я пробовал Chrome, Firefox и Edge с тем же состоянием.

Я пробовал как CPU, так и CPU, но ничего не изменилось.

Я гуглил и искал в stackoverflow, но никто не сообщил об этой проблеме. А затем я проверяю и сбрасываю настройки управления питанием, но ничего не изменилось.

В документах tensorflow.js я не могу найти информацию об этой настройке.

Что я могу сделать, чтобы tensorflow.js продолжает соответствовать и отправляет логи на консоль, пока браузер свернут и т. Д.

Мой код скрипта, как показано ниже:


 <html>
 <head>
 <!-- Load TensorFlow.js -->
 <!-- Get latest version at https://github.com/tensorflow/tfjs -->
 <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"> 
 </script>
 </head>
 <body>
   <div id="output_field"></div>
 </body>
 <script>
 async function learnLinear(){
  const model = tf.sequential();
  model.add(tf.layers.dense({units: 1, inputShape: [1]}));
  const optimizer = tf.train.adam(0.1);
  model.compile({
   loss: 'meanSquaredError',
   metrics: ['accuracy'],
   optimizer: optimizer
  });

  const xs = tf.tensor2d([-40, -10, 0, 8, 15, 22, 38], [7, 1]);
  const ys = tf.tensor2d([-40, 14, 32, 46, 59, 72, 100], [7, 1]);

  const history = await model.fit(xs, ys, {
  epochs: 500,
    callbacks:{
        onEpochEnd: async(epoch, logs) =>{
            console.log("Epoch: "   epoch   " Loss: "   logs.loss);
            }
        }
  });

  document.getElementById('output_field').innerText =
   model.predict(tf.tensor2d([100.0], [1, 1]));
 }

 learnLinear();
 </script>
<html>  

Комментарии:

1. Браузеры предоставляют полные ресурсы только для открытых вкладок, Чтобы предотвратить разрядку батареи и т. Д. На ноутбуках / мобильных устройствах и т. Д. Это работает так, как задумано. Для работы на полной скорости вкладка должна быть открыта. Я считаю, что это будет работать, когда не в фокусе, но намного медленнее — это вещь уровня браузера и применяется ко всем JS, а не только к ситуациям машинного обучения

2. Большое вам спасибо за ваш ответ. Я также пытался долго ждать, пока он все еще работает в фоновом режиме, но медленно, но это не продолжается для эпохи. работает. Я жду этого простого примера в течение 30-40 минут, но он все еще кажется приостановленным. Но я подожду 2-3 часа и не протестирую.

3. @JasonMayes я запустил свой скрипт, а затем каждая эпоха регистрируется на консоли каждые 1-2 секунды. И затем я сворачиваю браузер и ждал 2-3 часа. Я снова развернул браузер, но он продолжался с последнего журнала эпохи :/ Я не понимаю, почему это происходит: (

4. Насколько мне известно, это решение браузера. При выполнении любой интенсивной работы на вкладке она должна быть в фокусе или видна независимо от того, является ли машинное обучение или нет.

5. Я не думаю, что это возможно, поскольку это решение на уровне браузера, а не то, что вы можете изменить, насколько я знаю.