web-dev-qa-db-fra.com

Délai d'expiration de session Google Colab

Dans la FAQ, il est mentionné que "les machines virtuelles sont recyclées lorsqu'elles sont inactives pendant un certain temps et ont une durée de vie maximale imposée par le système".

La durée de vie maximale et les temps d'inactivité sont-ils fixes ou variables? Existe-t-il un moyen de les prédire?

16
Sia

Cela prend 90 minutes si vous fermez le navigateur. 12 heures si vous gardez le navigateur ouvert. De plus, si vous fermez votre navigateur avec une cellule de code en cours d'exécution, si cette même cellule n'est pas terminée, lorsque vous rouvrez le navigateur, il sera toujours en cours d'exécution (la cellule en cours d'exécution continue de fonctionner même après la fermeture du navigateur)

20

PROBLÈME: J'entraînais mon modèle, mais google colab continue de se déconnecter automatiquement après 30 minutes si je ne réponds pas. Et mes données sont perdues.

SOLUTION: Pour éviter cela, exécutez simplement le code suivant dans la console et cela vous empêchera de vous déconnecter. Ctrl+ Shift + i pour ouvrir la vue inspecteur. Ensuite, allez dans la console.

function ClickConnect(){
console.log("Working"); 
document.querySelector("colab-toolbar-button#connect").click() 
}
setInterval(ClickConnect,60000)

Il continuerait à cliquer sur la page et l'empêcherait de se déconnecter. Cela a résolu le problème pour moi.

10
Ashish Anand

Une autre façon de surmonter le délai d'expiration de la session consiste à exécuter un script autoclick dans python (surtout si vous avez l'intention de ne pas utiliser votre ordinateur lors de l'exécution de votre code dans colab)

Voici le code: (Assurez-vous de pip installer pynput avant)

import threading
from pynput.mouse import Button, Controller
from pynput.keyboard import Listener, KeyCode


delay = 20 #this is the delay of the autoclick (20 seconds here)
button = Button.left
start_stop_key = KeyCode(char='s')
exit_key = KeyCode(char='e')


class ClickMouse(threading.Thread):
    def __init__(self, delay, button):
        super(ClickMouse, self).__init__()
        self.delay = delay
        self.button = button
        self.running = False
        self.program_running = True

    def start_clicking(self):
        self.running = True

    def stop_clicking(self):
        self.running = False

    def exit(self):
        self.stop_clicking()
        self.program_running = False

    def run(self):
        while self.program_running:
            while self.running:
                mouse.click(self.button)
                time.sleep(self.delay)
            time.sleep(0.1)


mouse = Controller()
click_thread = ClickMouse(delay, button)
click_thread.start()


def on_press(key):
    if key == start_stop_key:
        if click_thread.running:
            click_thread.stop_clicking()
        else:
            click_thread.start_clicking()
    Elif key == exit_key:
        click_thread.exit()
        listener.stop()


with Listener(on_press=on_press) as listener:
    listener.join()

Exécutez ce script sur une fenêtre de ligne de commande, puis appuyez sur la touche "s" pour démarrer l'autoclic et "e" pour quitter, puis laissez le pointeur de la souris sur une cellule de code (normalement il cliquera après un certain délai).

0
Rafik