121 votes

Puis-je exécuter un script de Google Colab (édition gratuite) et ensuite éteindre mon ordinateur ?

Puis-je exécuter un google colab (édition gratuite) script et ensuite éteindre mon ordinateur ?

Je suis en train d'entraîner plusieurs modèles deeplearning avec validation croisée, et je voudrais donc savoir si je peux fermer la fenêtre ou l'ordinateur avec l'entraînement en cours d'exécution en même temps dans le cloud.

0 votes

Peut-être est-ce quelque chose que vous recherchez unix.stackexchange.com/questions/4442/ Voulez-vous envoyer un message à votre PC depuis la machine google-colab ?

1 votes

Merci de votre réponse, mais ce n'est pas ce que je recherche.

126voto

MoltenMuffins Points 560

Édité : Lorsque le navigateur est fermé, une instance de Colabs fonctionne pendant au maximum 12 heures 90 minutes avant votre temps d'exécution est considéré comme inactif et est recyclé.

En même temps, il serait bon de sauvegarder périodiquement les poids de vos modèles pour éviter de perdre du travail.


Détails :

Il n'y a pas de références officielles pour les durées de "veille" et de "durée de vie maximale", mais tests effectués par Korakot Chaovavanich montre que :

  • Le site Durée de vie maximale d'un ordinateur portable en cours d'exécution est 12 heures (navigateur ouvert)
  • Un site Idle (inactif) L'instance de l'ordinateur portable se coupe après 90 minutes
  • Vous pouvez avoir un maximum de 2 cahiers fonctionnant simultanément
  • Si vous fermez la fenêtre du notebook et l'ouvrez alors que l'instance est toujours en cours d'exécution, les sorties de cellule et les variables persisteront. Cependant, si l'instance du notebook a été recyclée, vos sorties de cellules et vos variables ne seront plus disponibles.

Vous pouvez également essayer d'ouvrir l'instance Colabs dans votre navigateur mobile afin d'éviter que l'instance ne soit considérée comme "inactive".


Votre propre expérience variera, car il m'arrive d'obtenir des durées légèrement plus courtes. Mais tant que vous effectuez des points de contrôle sur vos modèles (en sauvegardant périodiquement les poids d'entraînement), vous devriez être en mesure d'effectuer une quantité substantielle d'entraînement avant que la VM ne soit recyclée, après quoi vous pouvez simplement charger les poids dans le modèle sur une nouvelle instance de VM et reprendre l'entraînement.

Toutefois, si vous souhaitez entraîner votre modèle pendant plus de 12 heures en une seule fois, vous pouvez exécuter Google Colaboratory sur une instance locale ou un Jupyter Notebook standard. Mais vous renonceriez au GPU/TPU gratuit que Colaboratory fournit. (Le point de contrôle serait toujours une bonne idée ici !)


Questions pertinentes de la FAQ de Google Colaboratory :

Où mon code est-il exécuté ? Qu'arrive-t-il à mon état d'exécution si je ferme la fenêtre du navigateur ?

Le code est exécuté dans une machine virtuelle dédiée à votre compte. 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.

Comment puis-je utiliser les GPU et pourquoi sont-ils parfois indisponibles ?

Colaboratory est destiné à une utilisation interactive. Les calculs de fond à long terme particulièrement sur les GPU, peuvent être arrêtés. Veuillez ne pas utiliser Colaboratory pour le minage de crypto-monnaies. Cette pratique n'est pas prise en charge et et peut entraîner l'indisponibilité du service. Nous encourageons les utilisateurs qui souhaitent exécuter des calculs continus ou de longue durée à travers l'interface utilisateur de Colaboratory de Colaboratory à utiliser un moteur d'exécution local.

29voto

Ouvrez la console de votre navigateur et copiez et collez le code ci-dessous, qui vous évitera d'être exclu pour cause d'inactivité.

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

Ps. Vous serez renvoyé au bout de 12 heures, quoi qu'il arrive, alors assurez-vous de sauvegarder votre progression dans votre Google Drive.

2 votes

C'est ce que j'ai fait, et maintenant je suis ennuyé par la boîte de dialogue qui s'affiche en permanence. Comment puis-je annuler cela ? ou le désactiver ?

7 votes

Si vous avez été ennuyé, cela signifie que vous le regardez, si vous le regardez, quel est l'intérêt de l'utiliser si vous pouvez simplement déplacer votre souris pour éviter de vous faire botter le cul pour être inactif ?

3 votes

Oui. Je faisais référence au fait de l'utiliser en étant loin de mon écran pendant une période prolongée, mais en revenant ensuite pour continuer à travailler dessus.

4voto

Boucle de la coquille

pour moi, je choisis ,chroot dans la VM par ssh Ngrok et exécuter le shell de commande (boucle) en arrière-plan.
while true;do sleep 300; done & J'utilise&` pour exécuter cette commande en arrière-plan. pour que je puisse quitter le site web de colab et laisser la VM fonctionner, pendant 12h.

ssh Ngrok

La meilleure façon d'utiliser ssh dans le laboratoire, vous devez vous connecter une fois. ngrok.com et obtenez votre clé OAuth et ajoutez cette cellule à votre carnet de notes colab.

#@title **SSH**

! pip install colab_ssh --upgrade &> /dev/null

Ngrok = True  

try:
    if username:
        pass
    elif password:
        pass
except NameError:
    !echo "root:root"   | chpasswd
    username='root'
    password='root'

#@markdown [OAuth](https://dashboard.ngrok.com/auth)
ngrokToken = "" #@param {type:'string'}

def runNGROK():
    from colab_ssh import launch_ssh
    from IPython.display import clear_output
    launch_ssh(ngrokToken, password)
    clear_output()

    print("ssh", username, end='@')
    ! curl -s http://localhost:4040/api/tunnels | python3 -c \
            "import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'][6:].replace(':', ' -p '))"

if Ngrok:
    if ngrokToken == "":
        print("No ngrokToken Found, Please enter it")
    else:
        runNGROK()

Maintenant, saisissez votre clé OAuth dans le texte d'Edite dans la cellule de couleur, après 3-9 secondes vous verrez votre ssh comme ceci

ssh root@2.tcp.ngrok.io -p 13225

N'oubliez pas de changer le mot de passe de l'utilisateur Root (par défaut Root) ,pour plus de sécurité, vous devriez changer le mot de passe linux de l'utilisateur Root. !echo "root:new password" | chpasswd et de la variable python par : password =password='new password' vous devez faire correspondre le mot de passe linux et le mot de passe var python, regardez dans cette ligne ci-dessus :

print("No user found using username and password as 'root'")
    !echo "root:t"   | chpasswd
    username='root'
    password='root'

2voto

shailu Points 57

Utilisez le multiprocessus en python, créez une autre fonction et lancez la boucle while à cet endroit ! cette boucle while ne le laissera pas dormir !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X