AIDGE IN SPACE
Banc d'essai de compression d'image apprise pour l'embarqué
Chargement...
Recherche...
Aucune correspondance
Référence de la classe aidge_in_space.train.StopWatcher

Demande d'arrêt de l'entraînement : annulation dans la base, fin de stdin ou signal. Plus de détails...

Fonctions membres publiques

 __init__ (self, store=None, job_id=None, watch_stdin=False, poll_s=CANCEL_POLL_S, attempts=None)
 Prépare la surveillance (sans installer les signaux : voir install()).
None install (self)
 Installe les gestionnaires de signaux (sans effet hors du fil principal).
None restore (self)
 Restaure les gestionnaires de signaux d'origine.
bool cancel_in_db (self)
 Lit le drapeau d'annulation de la base, sans limite de fréquence.
bool __call__ (self)
 Vrai si un arrêt est demandé (la base est lue au plus une fois toutes les poll_s secondes).

Attributs publics

 attempts = attempts
 Valeur de attempts au démarrage, ou None (pas de contrôle de reprise).
 store
 Base et job surveillés.
 job_id = store, job_id
 Base et job surveillés.
 poll_s = poll_s
 Période minimale entre deux lectures de la base.
str reason = None
 Cause de l'arrêt : "cancel", "stdin", "signal", ou None tant qu'aucun arrêt n'est demandé.

Fonctions membres protégées

None _watch_stdin (self)
 Lit stdin octet par octet (descripteur 0), sans exploiter les données, jusqu'à sa fin ou une erreur.
None _on_signal (self, signum, frame)
 Gestionnaire de SIGINT, SIGTERM et SIGBREAK : demande un arrêt propre.
None _taken_over (self, job)
 Arrête le processus sans sauvegarder si le job a été repris par un autre processus.
bool _poll (self)
 Lit le job dans la base (une seule lecture) : contrôle de reprise, puis drapeau d'annulation.

Attributs protégés

 _last_poll = None
 Instant (time.monotonic) de la dernière lecture de la base.
dict _previous = {}
 Gestionnaires de signaux remplacés, pour les restaurer.

Description détaillée

Demande d'arrêt de l'entraînement : annulation dans la base, fin de stdin ou signal.

L'instance est appelable sans argument et sert de should_stop à train() : elle ne lit que des drapeaux en mémoire, sauf la lecture de la base, faite au plus toutes les poll_s secondes.

Documentation des constructeurs et destructeur

◆ __init__()

aidge_in_space.train.StopWatcher.__init__ ( self,
store = None,
job_id = None,
watch_stdin = False,
poll_s = CANCEL_POLL_S,
attempts = None )

Prépare la surveillance (sans installer les signaux : voir install()).

Paramètres
storeJobStore pour lire cancel_requested, ou None.
job_idNuméro du job surveillé.
watch_stdinLance un thread démon qui détecte la fin de stdin.
poll_sPériode minimale des lectures de la base.
attemptsValeur de attempts du job lue au démarrage ; si elle change dans la base (ou si le job n'est plus running), un autre processus a repris le job : voir _taken_over().

Documentation des fonctions membres

◆ _poll()

bool aidge_in_space.train.StopWatcher._poll ( self)
protected

Lit le job dans la base (une seule lecture) : contrôle de reprise, puis drapeau d'annulation.

Renvoie
Vrai si l'annulation est demandée ; faux en cas d'erreur SQLite (avertissement).

◆ _taken_over()

None aidge_in_space.train.StopWatcher._taken_over ( self,
job )
protected

Arrête le processus sans sauvegarder si le job a été repris par un autre processus.

Sans effet tant que le job est running avec la même valeur de attempts. Sinon : message dans le journal puis os._exit(EXIT_STOPPED), sans sauvegarde, pour ne pas écraser le checkpoint de l'autre processus.

Paramètres
jobJob lu dans la base, ou None s'il a disparu.

◆ cancel_in_db()

bool aidge_in_space.train.StopWatcher.cancel_in_db ( self)

Lit le drapeau d'annulation de la base, sans limite de fréquence.

Renvoie
Vrai si l'annulation est demandée ; faux sans base ou en cas d'erreur SQLite (avertissement).

La documentation de cette classe a été générée à partir du fichier suivant :
  • train.py