Ich habe einen Artikel geschrieben [Qiita] Benachrichtige mich mit Slack, wenn der auf GCP ausgeführte maschinelle Lernprozess abgeschlossen ist. Ist es nicht manchmal besser, die VM automatisch anzuhalten, wenn Sie mitten in der Nacht schlafen? Also werde ich beschreiben, wie es geht.
Vergessen Sie nicht, das Modell (Joblib, Pickle) und das Ergebnis (CSV-Export) zu speichern, damit die Berechnung nicht verschwendet wird.
Wie einige von Ihnen hier vielleicht bemerkt haben, wenn der Prozess beendet ist Es ist eine Strategie, den Befehl glcoud selbst auszugeben und Ihre VM zu stoppen.
Terminal
curl https://sdk.cloud.google.com | bash
Wenn Sie zum Zeitpunkt der Installation den Pfad nicht angeben, führen Sie Folgendes aus Wenn Pfad angegeben ist, ändern Sie den .bashrc-Teil.
Terminal
source .bashrc
Terminal
gcloud -v
Authentifizieren Sie den Namen des Zielprojekts und Google Mail
Terminal
gcloud init
[Qiita] Erstellen, Stoppen, Fortsetzen und Zerstören von GCP Compute Engine-Instanzen mit Befehlen
Es scheint, dass Sie mit gcloud compute instance stop <instanzname>
stoppen können, also
Fügen Sie dies in die Python-Verarbeitung ein
Für Jupyterlab
#Eine Art Ausführungsprozess
! gcloud compute instances stop <Instanzname>
[Qiita] Mit Slack benachrichtigen, wenn der auf GCP ausgeführte maschinelle Lernprozess abgeschlossen ist In Übereinstimmung mit der oben beschriebenen Slack-Benachrichtigung werden wir auch testen, um die VM zu stoppen
python
#Import des benötigten Moduls
import slackweb
import datetime
#Slack-Benachrichtigungen klassifizieren
class Slack_notice():
start = 0
def __init__(self):
self.slack = slackweb.Slack(url="URL von Slacks eingehendem Webhook") #Schreiben Sie es in Ihre eigene URL um
def begin(self):
self.start = datetime.datetime.now()
self.slack.notify(text='[Notice] ' + str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")) + '\n Die Verarbeitung wurde gestartet!')
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 Die Verarbeitung ist abgeschlossen! \n Zeitaufwand'+ str(elapsed_time) + 'ist\n Stoppen Sie die VM.')
# Slack_Klassenaufruf beachten
slack_notice = Slack_notice()
#Benachrichtigung vor der Ausführung
slack_notice.begin()
#Der Prozess, den Sie ausführen möchten-------------------------------------------------------------------------
#Dieses Mal habe ich der Klarheit halber nur jede Sekunde gedruckt.
from time import sleep
for num in range(10):
print(num)
sleep(1)
# -------------------------------------------------------------------------------------
#Benachrichtigung vor der Ausführung
slack_notice.end()
#VM stoppen
! gcloud compute instances stop <Instanzname>
Es wurde sicher gestoppt
Recommended Posts