J'ai écrit un article [Qiita] Me prévenir avec Slack lorsque le processus d'apprentissage automatique s'exécutant sur GCP est terminé. N'est-il pas parfois préférable d'arrêter automatiquement la machine virtuelle en dormant au milieu de la nuit? Donc, je vais décrire comment le faire.
N'oubliez pas de sauvegarder le modèle (joblib, pickle) et de sauvegarder le résultat (export csv) pour que le calcul ne soit pas gaspillé.
Comme certains d'entre vous l'ont peut-être remarqué ici, lorsque le processus est terminé Il s'agit d'une stratégie consistant à émettre la commande glcoud par vous-même et à arrêter votre machine virtuelle.
Terminal
curl https://sdk.cloud.google.com | bash
Au moment de l'installation, si vous ne spécifiez pas le chemin, exécutez ce qui suit Si Path est spécifié, modifiez la partie .bashrc.
Terminal
source .bashrc
Terminal
gcloud -v
Authentifiez le nom du projet cible et Gmail
Terminal
gcloud init
[Qiita] Créer, arrêter, reprendre et détruire des instances GCP Compute Engine avec des commandes
Il semble que vous puissiez vous arrêter avec gcloud compute instances stop <nom de l'instance>
, donc
Mettez ceci dans le traitement Python
Pour Jupyterlab
#Une sorte de processus d'exécution
! gcloud compute instances stop <Nom de l'instance>
[Qiita] Notifier avec Slack lorsque le processus d'apprentissage automatique en cours d'exécution sur GCP est terminé Nous allons tester pour arrêter la VM conformément à la notification Slack écrite ci-dessus.
python
#Import du module requis
import slackweb
import datetime
#Classer les notifications Slack
class Slack_notice():
start = 0
def __init__(self):
self.slack = slackweb.Slack(url="URL du Webhook entrant de Slack") #Réécrivez-le dans votre propre URL
def begin(self):
self.start = datetime.datetime.now()
self.slack.notify(text='[Notice] ' + str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")) + '\n Le traitement a commencé!')
def end(self):
elapsed_time = datetime.datetime.now() - self.start
self.slack.notify(text='[Notice] ' + str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")) + '\n Le traitement est terminé! \n Temps requis'+ str(elapsed_time) + 'est\n Arrêtez la VM.')
# Slack_notez l'appel de classe
slack_notice = Slack_notice()
#Notification de pré-exécution
slack_notice.begin()
#Le processus que vous souhaitez exécuter-------------------------------------------------------------------------
#Cette fois, par souci de clarté, je viens d'imprimer toutes les secondes.
from time import sleep
for num in range(10):
print(num)
sleep(1)
# -------------------------------------------------------------------------------------
#Notification de pré-exécution
slack_notice.end()
#Arrêt de la VM
! gcloud compute instances stop <Nom de l'instance>
Il a été arrêté en toute sécurité
Recommended Posts